Skip to content

Commit d577ece

Browse files
committed
Fix session timeout
1 parent a8bf213 commit d577ece

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

go.mod

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ module github.com/dlopes7/dynatrace-openkit-go
33
go 1.15
44

55
require (
6-
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
7-
github.com/sasha-s/go-deadlock v0.2.0 // indirect
86
github.com/sirupsen/logrus v1.6.0
9-
github.com/stretchr/testify v1.2.2 // indirect
7+
github.com/stretchr/testify v1.2.2
108
)

go.sum

-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
22
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
33
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
44
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
5-
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ=
6-
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=
75
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
86
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
9-
github.com/sasha-s/go-deadlock v0.2.0 h1:lMqc+fUb7RrFS3gQLtoQsJ7/6TV/pAIFvBsqX73DK8Y=
10-
github.com/sasha-s/go-deadlock v0.2.0/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10=
117
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
128
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
139
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=

openkitgo/configuration/server.go

+20-6
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ type ServerConfiguration struct {
1414
Multiplicity int
1515
SendInterval time.Duration
1616
MaxSessionDuration time.Duration
17-
SessionSplitBySessionDuration bool
17+
sessionSplitBySessionDuration bool
1818
MaxEventsPerSession int
19-
SessionSplitByEvents bool
19+
sessionSplitByEvents bool
2020
SessionTimeout time.Duration
21-
SessionSplitByIdleTimeout bool
21+
sessionSplitByIdleTimeout bool
2222
VisitStoreVersion int
2323
TrafficControlPercentage int
2424
}
@@ -33,11 +33,11 @@ func NewServerConfiguration(attributes protocol.ResponseAttributes) *ServerConfi
3333
Multiplicity: attributes.Multiplicity,
3434
SendInterval: attributes.SendInterval,
3535
MaxSessionDuration: attributes.MaxSessionDuration,
36-
SessionSplitBySessionDuration: attributes.MaxSessionDuration != 0,
36+
sessionSplitBySessionDuration: attributes.MaxSessionDuration != 0,
3737
MaxEventsPerSession: attributes.MaxEventsPerSession,
38-
SessionSplitByEvents: attributes.MaxEventsPerSession != 0,
38+
sessionSplitByEvents: attributes.MaxEventsPerSession != 0,
3939
SessionTimeout: attributes.SessionTimeout,
40-
SessionSplitByIdleTimeout: attributes.SessionTimeout != 0,
40+
sessionSplitByIdleTimeout: attributes.SessionTimeout != 0,
4141
VisitStoreVersion: attributes.VisitStoreVersion,
4242
TrafficControlPercentage: attributes.TrafficControlPercentage,
4343
}
@@ -55,3 +55,17 @@ func (c *ServerConfiguration) IsSendingErrorsAllowed() bool {
5555
return c.IsSendingDataAllowed() && c.ErrorReporting
5656

5757
}
58+
59+
func (c *ServerConfiguration) IsSessionSplitByEventsEnabled() bool {
60+
return c.sessionSplitByEvents && c.MaxEventsPerSession > 0
61+
}
62+
63+
func (c *ServerConfiguration) IsSessionSplitBySessionDurationEnabled() bool {
64+
return c.sessionSplitBySessionDuration && c.MaxSessionDuration > 0
65+
66+
}
67+
68+
func (c *ServerConfiguration) IsSessionSplitByIdleTimeoutEnabled() bool {
69+
return c.sessionSplitByIdleTimeout && c.SessionTimeout > 0
70+
71+
}

openkitgo/core/session_proxy.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ func (p *SessionProxy) closeChildObjects(timestamp time.Time) {
287287

288288
func (p *SessionProxy) isSessionSplitByEventsRequired() bool {
289289

290-
if p.serverConfiguration == nil || !p.serverConfiguration.IsSendingDataAllowed() {
290+
if p.serverConfiguration == nil || !p.serverConfiguration.IsSessionSplitByEventsEnabled() {
291291
return false
292292
}
293293
return p.serverConfiguration.MaxEventsPerSession <= p.topLevelActionCount
@@ -320,7 +320,7 @@ func (p *SessionProxy) onServerConfigurationUpdate(serverConfiguration *configur
320320
return
321321
}
322322

323-
if p.serverConfiguration.SessionSplitByIdleTimeout || p.serverConfiguration.SessionSplitBySessionDuration {
323+
if p.serverConfiguration.IsSessionSplitBySessionDurationEnabled() || p.serverConfiguration.IsSessionSplitByIdleTimeoutEnabled() {
324324
p.sessionWatchdog.AddToSplitByTimeout(p)
325325
}
326326

@@ -378,8 +378,8 @@ func (p *SessionProxy) calculateNextSplitTime() time.Time {
378378
return time.Time{}
379379
}
380380

381-
splitByIdleTimeout := p.serverConfiguration.SessionSplitByIdleTimeout
382-
splitBySessionDuration := p.serverConfiguration.SessionSplitBySessionDuration
381+
splitByIdleTimeout := p.serverConfiguration.IsSessionSplitByIdleTimeoutEnabled()
382+
splitBySessionDuration := p.serverConfiguration.IsSessionSplitBySessionDurationEnabled()
383383

384384
idleTimeOut := p.lastInteractionTime.Add(p.serverConfiguration.SessionTimeout)
385385
sessionMaxTime := p.currentSession.beacon.sessionStartTime.Add(p.serverConfiguration.MaxSessionDuration)

0 commit comments

Comments
 (0)