Skip to content

Commit 71b5db2

Browse files
committed
RUM-17613: Rename Timeseries abstractions to TimeseriesCollector
Rename the internal Timeseries interface to TimeseriesCollector and rename its implementations to DefaultTimeseriesCollector and DefaultTimeseriesCollectorFactory, propagating the new names through RumFeature, the RUM scope tree and the tests. No behaviour change. Ref: RUM-17613
1 parent e4fa588 commit 71b5db2

20 files changed

Lines changed: 176 additions & 160 deletions

detekt_custom_safe_calls_third_party.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ datadog:
259259
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.android.api.SdkCore?, com.datadog.android.api.SdkCore?)"
260260
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.android.flags.internal.repository.DefaultFlagsRepository.FlagsState?, com.datadog.android.flags.internal.repository.DefaultFlagsRepository.FlagsState?)"
261261
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.trace.bootstrap.instrumentation.api.AgentTracer.TracerAPI?, com.datadog.trace.bootstrap.instrumentation.api.AgentTracer.TracerAPI?)"
262-
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseries.State?, com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseries.State?)"
262+
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollector.State?, com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollector.State?)"
263263
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(com.datadog.android.trace.api.tracer.DatadogTracer?, com.datadog.android.trace.api.tracer.DatadogTracer?)"
264264
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(kotlin.String?, kotlin.String?)"
265265
- "java.util.concurrent.atomic.AtomicReference.compareAndSet(kotlin.collections.Set?, kotlin.collections.Set?)"
@@ -272,14 +272,14 @@ datadog:
272272
- "java.util.concurrent.atomic.AtomicReference.constructor(com.datadog.android.flags.model.FlagsClientState?)"
273273
- "java.util.concurrent.atomic.AtomicReference.constructor(com.datadog.android.flags.model.ProviderContext?)"
274274
- "java.util.concurrent.atomic.AtomicReference.constructor(com.datadog.android.rum.internal.domain.RumContext?)"
275-
- "java.util.concurrent.atomic.AtomicReference.constructor(com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseries.State?)"
275+
- "java.util.concurrent.atomic.AtomicReference.constructor(com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollector.State?)"
276276
- "java.util.concurrent.atomic.AtomicReference.constructor(kotlin.collections.Map?)"
277277
- "java.util.concurrent.atomic.AtomicReference.constructor(kotlin.String?)"
278278
- "java.util.concurrent.atomic.AtomicReference.constructor(kotlin.collections.Set?)"
279279
- "java.util.concurrent.atomic.AtomicReference.get()"
280280
- "java.util.concurrent.atomic.AtomicReference.getAndSet(kotlin.String?)"
281281
- "java.util.concurrent.atomic.AtomicReference.getAndSet(java.util.concurrent.Future?)"
282-
- "java.util.concurrent.atomic.AtomicReference.getAndSet(com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseries.State?)"
282+
- "java.util.concurrent.atomic.AtomicReference.getAndSet(com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollector.State?)"
283283
- "java.util.concurrent.atomic.AtomicReference.set(android.app.Application.ActivityLifecycleCallbacks?)"
284284
- "java.util.concurrent.atomic.AtomicReference.set(com.datadog.android.api.FeatureEventReceiver?)"
285285
- "java.util.concurrent.atomic.AtomicReference.set(com.datadog.android.api.SdkCore?)"

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/Rum.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ object Rum {
167167
},
168168
insightsCollector = rumFeature.insightsCollector,
169169
heatmapIdentifierRegistry = rumFeature.heatmapIdentifierRegistry,
170-
timeseriesFactory = rumFeature.timeseriesFactory
170+
timeseriesCollectorFactory = rumFeature.timeseriesCollectorFactory
171171
)
172172
}
173173

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/RumFeature.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ import com.datadog.android.rum.internal.startup.RumStartupScenario
9292
import com.datadog.android.rum.internal.startup.RumTTIDInfo
9393
import com.datadog.android.rum.internal.thread.NoOpScheduledExecutorService
9494
import com.datadog.android.rum.internal.timeseries.Buffer
95-
import com.datadog.android.rum.internal.timeseries.NoOpTimeseriesFactory
95+
import com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollectorFactory
96+
import com.datadog.android.rum.internal.timeseries.NoOpTimeseriesCollectorFactory
9697
import com.datadog.android.rum.internal.timeseries.Pipeline
97-
import com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseriesFactory
98-
import com.datadog.android.rum.internal.timeseries.Timeseries
98+
import com.datadog.android.rum.internal.timeseries.TimeseriesCollector
9999
import com.datadog.android.rum.internal.timeseries.provider.CpuDatapointReader
100100
import com.datadog.android.rum.internal.timeseries.provider.VitalReaderWrapper
101101
import com.datadog.android.rum.internal.timeseries.serializer.CpuEventSerializer
@@ -200,7 +200,7 @@ internal class RumFeature(
200200
internal val rumContextUpdateReceivers = mutableSetOf<FeatureContextUpdateReceiver>()
201201
internal var insightsCollector: InsightsCollector = NoOpInsightsCollector()
202202
override val heatmapIdentifierRegistry: HeatmapIdentifierRegistry = HeatmapIdentifierRegistry.create()
203-
internal var timeseriesFactory: Timeseries.Factory = NoOpTimeseriesFactory()
203+
internal var timeseriesCollectorFactory: TimeseriesCollector.Factory = NoOpTimeseriesCollectorFactory()
204204

205205
private val lateCrashEventHandler by lazy { lateCrashReporterFactory(sdkCore as InternalSdkCore) }
206206
internal var rumAppStartupDetector: RumAppStartupDetector? = null
@@ -303,7 +303,7 @@ internal class RumFeature(
303303
sessionListener = configuration.sessionListener
304304

305305
configuration.timeseriesConfiguration?.let { configuration ->
306-
timeseriesFactory = createTimeseriesCollectingFactory(
306+
timeseriesCollectorFactory = createTimeseriesCollectingFactory(
307307
configuration,
308308
appContext.readTotalRamBytes(sdkCore.internalLogger) ?: 0L,
309309
insightsCollector
@@ -375,8 +375,8 @@ internal class RumFeature(
375375

376376
unregisterTrackingStrategies(appContext)
377377

378-
timeseriesFactory = NoOpTimeseriesFactory()
379-
(GlobalRumMonitor.get(sdkCore) as? DatadogRumMonitor)?.stopActiveTimeseries()
378+
timeseriesCollectorFactory = NoOpTimeseriesCollectorFactory()
379+
(GlobalRumMonitor.get(sdkCore) as? DatadogRumMonitor)?.stopTimeseries()
380380

381381
dataWriter = NoOpDataWriter()
382382

@@ -457,7 +457,7 @@ internal class RumFeature(
457457
configuration: TimeseriesConfiguration,
458458
totalRamBytes: Long,
459459
insightsCollector: InsightsCollector
460-
): Timeseries.Factory = RumSessionScopeTimeseriesFactory(
460+
): TimeseriesCollector.Factory = DefaultTimeseriesCollectorFactory(
461461
internalLogger = sdkCore.internalLogger,
462462
collectInBackground = configuration.collectInBackground,
463463
scheduledExecutorService = vitalExecutorService,

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumApplicationScope.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import com.datadog.android.rum.internal.instrumentation.insights.InsightsCollect
3030
import com.datadog.android.rum.internal.metric.SessionMetricDispatcher
3131
import com.datadog.android.rum.internal.metric.slowframes.SlowFramesListener
3232
import com.datadog.android.rum.internal.startup.RumSessionScopeStartupManager
33-
import com.datadog.android.rum.internal.timeseries.Timeseries
33+
import com.datadog.android.rum.internal.timeseries.TimeseriesCollector
3434
import com.datadog.android.rum.internal.vitals.VitalMonitor
3535
import com.datadog.android.rum.metric.interactiontonextview.LastInteractionIdentifier
3636
import com.datadog.android.rum.metric.networksettled.InitialResourceIdentifier
@@ -59,7 +59,7 @@ internal class RumApplicationScope(
5959
private val rumSessionScopeStartupManagerFactory: () -> RumSessionScopeStartupManager,
6060
private val insightsCollector: InsightsCollector,
6161
private val heatmapIdentifierRegistry: HeatmapIdentifierRegistry?,
62-
private val timeseriesFactory: Timeseries.Factory
62+
private val timeseriesCollectorFactory: TimeseriesCollector.Factory
6363
) : RumScope, RumViewChangedListener {
6464

6565
override val parentScope: RumScope? = null
@@ -91,7 +91,7 @@ internal class RumApplicationScope(
9191
rumSessionScopeStartupManagerFactory = rumSessionScopeStartupManagerFactory,
9292
insightsCollector = insightsCollector,
9393
heatmapIdentifierRegistry = heatmapIdentifierRegistry,
94-
timeseriesFactory = timeseriesFactory
94+
timeseriesCollectorFactory = timeseriesCollectorFactory
9595
)
9696
)
9797

@@ -215,7 +215,7 @@ internal class RumApplicationScope(
215215
rumSessionScopeStartupManagerFactory = rumSessionScopeStartupManagerFactory,
216216
insightsCollector = insightsCollector,
217217
heatmapIdentifierRegistry = heatmapIdentifierRegistry,
218-
timeseriesFactory = timeseriesFactory
218+
timeseriesCollectorFactory = timeseriesCollectorFactory
219219
)
220220
childScopes.add(newSession)
221221
if (event !is RumRawEvent.StartView) {

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumSessionScope.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ import com.datadog.android.rum.internal.instrumentation.insights.InsightsCollect
2828
import com.datadog.android.rum.internal.metric.SessionMetricDispatcher
2929
import com.datadog.android.rum.internal.metric.slowframes.SlowFramesListener
3030
import com.datadog.android.rum.internal.startup.RumSessionScopeStartupManager
31-
import com.datadog.android.rum.internal.timeseries.NoOpTimeseries
32-
import com.datadog.android.rum.internal.timeseries.NoOpTimeseriesFactory
33-
import com.datadog.android.rum.internal.timeseries.Timeseries
31+
import com.datadog.android.rum.internal.timeseries.NoOpTimeseriesCollector
32+
import com.datadog.android.rum.internal.timeseries.NoOpTimeseriesCollectorFactory
33+
import com.datadog.android.rum.internal.timeseries.TimeseriesCollector
3434
import com.datadog.android.rum.internal.vitals.VitalMonitor
3535
import com.datadog.android.rum.metric.interactiontonextview.LastInteractionIdentifier
3636
import com.datadog.android.rum.metric.networksettled.InitialResourceIdentifier
@@ -65,10 +65,10 @@ internal class RumSessionScope(
6565
private val rumSessionScopeStartupManagerFactory: () -> RumSessionScopeStartupManager,
6666
insightsCollector: InsightsCollector,
6767
heatmapIdentifierRegistry: HeatmapIdentifierRegistry?,
68-
private val timeseriesFactory: Timeseries.Factory = NoOpTimeseriesFactory()
68+
private val timeseriesCollectorFactory: TimeseriesCollector.Factory = NoOpTimeseriesCollectorFactory()
6969
) : RumScope {
7070

71-
private var timeseries: Timeseries = NoOpTimeseries()
71+
private var timeseriesCollector: TimeseriesCollector = NoOpTimeseriesCollector()
7272

7373
internal var sessionId = RumContext.NULL_UUID
7474
internal var sessionState: State = State.NOT_TRACKED
@@ -201,7 +201,7 @@ internal class RumSessionScope(
201201
}
202202
}
203203

204-
timeseries.onViewTypeUpdate(getActiveRumContext().viewType)
204+
timeseriesCollector.onViewTypeUpdate(getActiveRumContext().viewType)
205205

206206
return if (isSessionComplete()) {
207207
null
@@ -234,17 +234,17 @@ internal class RumSessionScope(
234234
}
235235

236236
private fun startTimeseries() {
237-
timeseries = timeseriesFactory.create(
237+
timeseriesCollector = timeseriesCollectorFactory.create(
238238
sessionId = sessionId,
239239
applicationId = parentScope.getRumContext().applicationId,
240240
sessionType = getRumContext().resolveSessionType(rumSessionTypeOverride)
241241
)
242-
timeseries.onSessionStart()
242+
timeseriesCollector.onSessionStart()
243243
}
244244

245245
internal fun stopTimeseries() {
246-
timeseries.onSessionStop()
247-
timeseries = NoOpTimeseries()
246+
timeseriesCollector.onSessionStop()
247+
timeseriesCollector = NoOpTimeseriesCollector()
248248
}
249249

250250
private fun stopSession() {

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/monitor/DatadogRumMonitor.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ import com.datadog.android.rum.internal.metric.slowframes.SlowFramesListener
6666
import com.datadog.android.rum.internal.startup.RumSessionScopeStartupManager
6767
import com.datadog.android.rum.internal.startup.RumStartupScenario
6868
import com.datadog.android.rum.internal.startup.RumTTIDInfo
69-
import com.datadog.android.rum.internal.timeseries.Timeseries
69+
import com.datadog.android.rum.internal.timeseries.TimeseriesCollector
7070
import com.datadog.android.rum.internal.vitals.VitalMonitor
7171
import com.datadog.android.rum.metric.interactiontonextview.LastInteractionIdentifier
7272
import com.datadog.android.rum.metric.networksettled.InitialResourceIdentifier
@@ -111,7 +111,7 @@ internal class DatadogRumMonitor(
111111
private val rumSessionScopeStartupManagerFactory: () -> RumSessionScopeStartupManager,
112112
insightsCollector: InsightsCollector,
113113
heatmapIdentifierRegistry: HeatmapIdentifierRegistry?,
114-
timeseriesFactory: Timeseries.Factory
114+
timeseriesCollectorFactory: TimeseriesCollector.Factory
115115
) : RumMonitor, AdvancedRumMonitor {
116116

117117
@Volatile private var cachedViewUrl: String? = null
@@ -138,7 +138,7 @@ internal class DatadogRumMonitor(
138138
rumSessionScopeStartupManagerFactory = rumSessionScopeStartupManagerFactory,
139139
insightsCollector = insightsCollector,
140140
heatmapIdentifierRegistry = heatmapIdentifierRegistry,
141-
timeseriesFactory = timeseriesFactory
141+
timeseriesCollectorFactory = timeseriesCollectorFactory
142142
)
143143

144144
internal var debugListener: RumDebugListener? = null
@@ -935,7 +935,7 @@ internal class DatadogRumMonitor(
935935
* de-initializes and shuts down its context executor before the async write task fires, the
936936
* write is silently skipped regardless.
937937
*/
938-
internal fun stopActiveTimeseries() {
938+
internal fun stopTimeseries() {
939939
synchronized(rootScope) {
940940
rootScope.activeSession?.stopTimeseries()
941941
}

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/RumSessionScopeTimeseries.kt renamed to features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/DefaultTimeseriesCollector.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ import java.util.concurrent.atomic.AtomicReference
3636
* When [startSampling] starts a new generation, any in-flight or queued ticks from the
3737
* previous generation self-terminate on their first check.
3838
*/
39-
internal class RumSessionScopeTimeseries(
39+
internal class DefaultTimeseriesCollector(
4040
private val internalLogger: InternalLogger,
4141
internal val pipelines: List<Pipeline<*>>,
4242
private val collectInBackground: Boolean,
4343
internal val scheduledExecutorService: ScheduledExecutorService
44-
) : Timeseries {
44+
) : TimeseriesCollector {
4545

4646
private enum class State { IDLE, RUNNING, SUSPENDED, STOPPED }
4747
private val state = AtomicReference(State.IDLE)

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/RumSessionScopeTimeseriesFactory.kt renamed to features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/DefaultTimeseriesCollectorFactory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.datadog.android.api.InternalLogger
1010
import com.datadog.android.rum.RumSessionType
1111
import java.util.concurrent.ScheduledExecutorService
1212

13-
internal class RumSessionScopeTimeseriesFactory(
13+
internal class DefaultTimeseriesCollectorFactory(
1414
private val internalLogger: InternalLogger,
1515
private val collectInBackground: Boolean,
1616
private val scheduledExecutorService: ScheduledExecutorService,
@@ -19,10 +19,10 @@ internal class RumSessionScopeTimeseriesFactory(
1919
sessionId: String,
2020
sessionType: RumSessionType
2121
) -> List<Pipeline<*>>
22-
) : Timeseries.Factory {
22+
) : TimeseriesCollector.Factory {
2323

2424
override fun create(applicationId: String, sessionId: String, sessionType: RumSessionType) =
25-
RumSessionScopeTimeseries(
25+
DefaultTimeseriesCollector(
2626
internalLogger = internalLogger,
2727
collectInBackground = collectInBackground,
2828
scheduledExecutorService = scheduledExecutorService,

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/Timeseries.kt renamed to features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/timeseries/TimeseriesCollector.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import com.datadog.android.rum.internal.domain.scope.RumViewType
1111
import com.datadog.tools.annotation.NoOpImplementation
1212

1313
@NoOpImplementation
14-
internal interface Timeseries {
14+
internal interface TimeseriesCollector {
1515
fun onSessionStart()
1616
fun onSessionStop()
1717
fun onViewTypeUpdate(newViewType: RumViewType)
1818

1919
@NoOpImplementation
2020
interface Factory {
21-
fun create(applicationId: String, sessionId: String, sessionType: RumSessionType): Timeseries
21+
fun create(applicationId: String, sessionId: String, sessionType: RumSessionType): TimeseriesCollector
2222
}
2323
}

features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/RumFeatureTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ import com.datadog.android.rum.internal.monitor.DatadogRumMonitor
5656
import com.datadog.android.rum.internal.monitor.NoOpAdvancedRumMonitor
5757
import com.datadog.android.rum.internal.startup.RumAppStartupDetector
5858
import com.datadog.android.rum.internal.thread.NoOpScheduledExecutorService
59-
import com.datadog.android.rum.internal.timeseries.RumSessionScopeTimeseries
60-
import com.datadog.android.rum.internal.timeseries.Timeseries
59+
import com.datadog.android.rum.internal.timeseries.DefaultTimeseriesCollector
60+
import com.datadog.android.rum.internal.timeseries.TimeseriesCollector
6161
import com.datadog.android.rum.internal.tracking.NoOpInteractionPredicate
6262
import com.datadog.android.rum.internal.tracking.NoOpUserActionTrackingStrategy
6363
import com.datadog.android.rum.internal.tracking.UserActionTrackingStrategy
@@ -869,7 +869,7 @@ internal class RumFeatureTest {
869869
var writerAtFlushTime: DataWriter<Any>? = null
870870
doAnswer {
871871
writerAtFlushTime = testedFeature.dataWriter
872-
}.whenever(mockDatadogMonitor).stopActiveTimeseries()
872+
}.whenever(mockDatadogMonitor).stopTimeseries()
873873

874874
// When
875875
testedFeature.onStop()
@@ -904,7 +904,7 @@ internal class RumFeatureTest {
904904
val timeseries = createTimeseries(totalRamBytes = 0L, sessionId = fakeSessionId)
905905

906906
// Then: only the CPU pipeline is created; the memory pipeline is skipped.
907-
check(timeseries is RumSessionScopeTimeseries)
907+
check(timeseries is DefaultTimeseriesCollector)
908908
assertThat(timeseries.pipelines).hasSize(1)
909909
}
910910

@@ -917,7 +917,7 @@ internal class RumFeatureTest {
917917
val timeseries = createTimeseries(totalRamBytes = fakeTotalRamBytes, sessionId = fakeSessionId)
918918

919919
// Then: both the CPU and memory pipelines are created.
920-
check(timeseries is RumSessionScopeTimeseries)
920+
check(timeseries is DefaultTimeseriesCollector)
921921
assertThat(timeseries.pipelines).hasSize(2)
922922
}
923923

@@ -1918,7 +1918,7 @@ internal class RumFeatureTest {
19181918
// Builds a timeseries collector for the given total device RAM (in bytes), bypassing the
19191919
// ActivityManager read so the skip/collect/log behavior can be exercised deterministically.
19201920
@OptIn(ExperimentalRumApi::class)
1921-
private fun createTimeseries(totalRamBytes: Long, sessionId: String): Timeseries =
1921+
private fun createTimeseries(totalRamBytes: Long, sessionId: String): TimeseriesCollector =
19221922
testedFeature
19231923
.createTimeseriesCollectingFactory(
19241924
TimeseriesConfiguration.Builder().build(),

0 commit comments

Comments
 (0)