Skip to content

Commit b8e9b0d

Browse files
committed
Add two different configurations for foreground and background session timeout
1 parent cb788a7 commit b8e9b0d

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

core/src/main/java/io/opentelemetry/android/OpenTelemetryRumBuilder.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public static OpenTelemetryRumBuilder create(Application application, OtelRumCon
118118
return new OpenTelemetryRumBuilder(
119119
application,
120120
config,
121-
new SessionBackgroundTimeoutHandler(config.getSessionTimeout()));
121+
new SessionBackgroundTimeoutHandler(config.getSessionBackgroundTimeout()));
122122
}
123123

124124
OpenTelemetryRumBuilder(
@@ -323,7 +323,8 @@ public OpenTelemetryRum build() {
323323

324324
if (sessionManager == null) {
325325
sessionManager =
326-
SessionManagerImpl.create(timeoutHandler, config.getSessionTimeout().toNanos());
326+
SessionManagerImpl.create(
327+
timeoutHandler, config.getSessionForegroundTimeout().toNanos());
327328
}
328329

329330
OpenTelemetrySdk sdk =

core/src/main/java/io/opentelemetry/android/config/OtelRumConfig.java

+19-7
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ public class OtelRumConfig {
2525
private boolean includeScreenAttributes = true;
2626
private boolean discoverInstrumentations = true;
2727
private DiskBufferingConfig diskBufferingConfig = DiskBufferingConfig.create();
28-
private Duration sessionTimeout = Duration.ofMinutes(15);
28+
private Duration sessionBackgroundTimeout = Duration.ofMinutes(15);
29+
private Duration sessionForegroundTimeout = Duration.ofHours(4);
2930

3031
/**
3132
* Configures the set of global attributes to emit with every span and event. Any existing
@@ -129,14 +130,25 @@ public OtelRumConfig setDiskBufferingConfig(DiskBufferingConfig diskBufferingCon
129130
return this;
130131
}
131132

132-
/** Call this method to set session timeout in minutes */
133-
public OtelRumConfig setSessionTimeout(Duration sessionTimeout) {
134-
this.sessionTimeout = sessionTimeout;
133+
/** Call this method to set background session timeout */
134+
public OtelRumConfig setSessionBackgroundTimeout(Duration sessionBackgroundTimeout) {
135+
this.sessionBackgroundTimeout = sessionBackgroundTimeout;
135136
return this;
136137
}
137138

138-
/** Call this method to retrieve session timeout */
139-
public Duration getSessionTimeout() {
140-
return sessionTimeout;
139+
/** Call this method to retrieve background session timeout */
140+
public Duration getSessionBackgroundTimeout() {
141+
return sessionBackgroundTimeout;
142+
}
143+
144+
/** Call this method to set foreground session timeout */
145+
public OtelRumConfig setSessionForegroundTimeout(Duration sessionForegroundTimeout) {
146+
this.sessionForegroundTimeout = sessionForegroundTimeout;
147+
return this;
148+
}
149+
150+
/** Call this method to retrieve foreground session timeout */
151+
public Duration getSessionForegroundTimeout() {
152+
return sessionForegroundTimeout;
141153
}
142154
}

0 commit comments

Comments
 (0)