Skip to content

Commit 7f6ef9e

Browse files
authored
Merge pull request #2687 from DataDog/yl/add-method-called-on-rum-event-processing
Add Method Called Metric on Rum event handling
2 parents 12ace45 + 20de9dc commit 7f6ef9e

File tree

1 file changed

+15
-1
lines changed
  • features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/monitor

1 file changed

+15
-1
lines changed

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ package com.datadog.android.rum.internal.monitor
99
import android.app.Activity
1010
import android.app.ActivityManager
1111
import android.os.Handler
12+
import androidx.annotation.WorkerThread
1213
import com.datadog.android.api.InternalLogger
1314
import com.datadog.android.api.feature.Feature
15+
import com.datadog.android.api.feature.measureMethodCallPerf
1416
import com.datadog.android.api.storage.DataWriter
1517
import com.datadog.android.core.InternalSdkCore
1618
import com.datadog.android.core.feature.event.ThreadDump
1719
import com.datadog.android.core.internal.net.FirstPartyHostHeaderTypeResolver
1820
import com.datadog.android.core.internal.utils.executeSafe
21+
import com.datadog.android.core.metrics.MethodCallSamplingRate
1922
import com.datadog.android.internal.telemetry.InternalTelemetryEvent
2023
import com.datadog.android.internal.thread.NamedRunnable
2124
import com.datadog.android.rum.DdRumContentProvider
@@ -690,7 +693,7 @@ internal class DatadogRumMonitor(
690693
sdkCore.internalLogger,
691694
NamedRunnable("${event::class.simpleName}") {
692695
synchronized(rootScope) {
693-
rootScope.handleEvent(event, writer)
696+
handleEventWithMethodCallPerf(event)
694697
notifyDebugListenerWithState()
695698
}
696699
handler.postDelayed(keepAliveRunnable, KEEP_ALIVE_MS)
@@ -700,6 +703,17 @@ internal class DatadogRumMonitor(
700703
}
701704
}
702705

706+
@WorkerThread
707+
private fun handleEventWithMethodCallPerf(event: RumRawEvent) {
708+
sdkCore.internalLogger.measureMethodCallPerf(
709+
javaClass,
710+
"RUM event - ${event::class.simpleName ?: "Unknown"}",
711+
MethodCallSamplingRate.RARE.rate
712+
) {
713+
rootScope.handleEvent(event, writer)
714+
}
715+
}
716+
703717
/**
704718
* Wait for any pending events. This is mostly for integration tests to ensure that the
705719
* RUM context is in the correct state before proceeding.

0 commit comments

Comments
 (0)