Skip to content

Commit 23e8d2b

Browse files
Merge branch 'develop' into aleksandr-gringauz/feature/app-launch-vitals
2 parents 39cc533 + 9794bcb commit 23e8d2b

File tree

162 files changed

+4462
-3981
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+4462
-3981
lines changed

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,49 @@
1+
# 3.3.0 / 2025-11-18
2+
3+
## What's Changed
4+
5+
* [FEATURE] Feature flags. See [#2982](https://github.com/DataDog/dd-sdk-android/pull/2982) and [#2879](https://github.com/DataDog/dd-sdk-android/pull/2879)
6+
* [FEATURE] Feature flags: Apply readme suggestions. See [#2988](https://github.com/DataDog/dd-sdk-android/pull/2988)
7+
* [FEATURE] Feature flags: Fix detekt violations in the flags module. See [#2994](https://github.com/DataDog/dd-sdk-android/pull/2994)
8+
* [FEATURE] Feature flags context management. See [#2886](https://github.com/DataDog/dd-sdk-android/pull/2886)
9+
* [FEATURE] Feature flags: Send exposures as batches. See [#2895](https://github.com/DataDog/dd-sdk-android/pull/2895)
10+
* [FEATURE] Feature flags: Add a persistence layer. See [#2898](https://github.com/DataDog/dd-sdk-android/pull/2898)
11+
* [FEATURE] Feature flags: `DatadogSite` extension for Flags endpoint. See [#2922](https://github.com/DataDog/dd-sdk-android/pull/2922)
12+
* [FEATURE] Feature flags: `Flags.enable` and `FlagsClient` APIs. See [#2900](https://github.com/DataDog/dd-sdk-android/pull/2900)
13+
* [FEATURE] Feature flags: Support custom endpoints for exposures. See [#2942](https://github.com/DataDog/dd-sdk-android/pull/2942)
14+
* [FEATURE] Feature flags: Custom flagging endpoint and assignment download refactoring. See [#2917](https://github.com/DataDog/dd-sdk-android/pull/2917)
15+
* [FEATURE] Feature flags: RUM Evaluation Tracking. See [#2926](https://github.com/DataDog/dd-sdk-android/pull/2926)
16+
* [FEATURE] Feature flags: Add `CountDownLatch` to `FlagsRepository`. See [#2947](https://github.com/DataDog/dd-sdk-android/pull/2947)
17+
* [FEATURE] Feature flags: Add telemetry for critical paths. See [#2952](https://github.com/DataDog/dd-sdk-android/pull/2952)
18+
* [FEATURE] Feature flags: Generic resolve method. See [#2923](https://github.com/DataDog/dd-sdk-android/pull/2923)
19+
* [FEATURE] Feature flags: Generate `ExposureEvent` from schema. See [#2957](https://github.com/DataDog/dd-sdk-android/pull/2957)
20+
* [FEATURE] Feature flags: Remove redundant `featureflags` subpackage. See [#2966](https://github.com/DataDog/dd-sdk-android/pull/2966)
21+
* [FEATURE] Feature flags: Support for `PROVIDER_NOT_READY` state. See [#2967](https://github.com/DataDog/dd-sdk-android/pull/2967)
22+
* [FEATURE] Feature flags: Graceful mode and error logging policies. See [#2963](https://github.com/DataDog/dd-sdk-android/pull/2963)
23+
* [FEATURE] Feature flags: Update documentation. See [#2955](https://github.com/DataDog/dd-sdk-android/pull/2955)
24+
* [FEATURE] Feature flags: Allow blank targeting keys. See [#2981](https://github.com/DataDog/dd-sdk-android/pull/2981)
25+
* [BUGFIX] Fix GraphQL operation type header. See [#2956](https://github.com/DataDog/dd-sdk-android/pull/2956)
26+
* [BUGFIX] Fix synthetic ids logging in `RumViewScope`. See [#2958](https://github.com/DataDog/dd-sdk-android/pull/2958)
27+
* [BUGFIX] Fix `RumWindowCallbacksRegistry` for multiple SDK instances. See [#3003](https://github.com/DataDog/dd-sdk-android/pull/3003)
28+
* [BUGFIX] Fix vital events duplication in Feature Operations. See [#2977](https://github.com/DataDog/dd-sdk-android/pull/2977)
29+
* [IMPROVEMENT] Support sending anonymous user ids in logs. See [#2945](https://github.com/DataDog/dd-sdk-android/pull/2945)
30+
* [IMPROVEMENT] Feature flags: Fix and improve tests, context management. See [#2896](https://github.com/DataDog/dd-sdk-android/pull/2896)
31+
* [IMPROVEMENT] Refactor `FlagsProvider` and `FlagsClient` into one. See [#2899](https://github.com/DataDog/dd-sdk-android/pull/2899)
32+
* [IMPROVEMENT] Support long task reporting for multiple SDK instances. See [#2934](https://github.com/DataDog/dd-sdk-android/pull/2934)
33+
* [IMPROVEMENT] `MIGRATION.MD` update for missing SDK v3 changes. See [#2936](https://github.com/DataDog/dd-sdk-android/pull/2936)
34+
* [IMPROVEMENT] Update RUM Schema to include app launch vitals. See [#2937](https://github.com/DataDog/dd-sdk-android/pull/2937)
35+
* [IMPROVEMENT] Trace: Handle OTEL reserved attributes when using `AttributeKeys`. See [#2946](https://github.com/DataDog/dd-sdk-android/pull/2946)
36+
* [IMPROVEMENT] Use stub `Executor` for `WorkerParameters` forgery factory. See [#2949](https://github.com/DataDog/dd-sdk-android/pull/2949)
37+
* [IMPROVEMENT] Do not create a new session for TTID. See [#2954](https://github.com/DataDog/dd-sdk-android/pull/2954)
38+
* [IMPROVEMENT] Add support of `oneOf(primitive|object)` in the json parser generator. See [#2972](https://github.com/DataDog/dd-sdk-android/pull/2972)
39+
* [IMPROVEMENT] Pass synthetic ids to RUM earlier in benchmark app. See [#2959](https://github.com/DataDog/dd-sdk-android/pull/2959)
40+
* [IMPROVEMENT] Update RUM schema. See [#2976](https://github.com/DataDog/dd-sdk-android/pull/2976)
41+
* [IMPROVEMENT] Updating `MIGRATION.MD` with the default sampling rate. See [#2995](https://github.com/DataDog/dd-sdk-android/pull/2995)
42+
* [IMPROVEMENT] Add internal `disableJankStats` config option. See [#3000](https://github.com/DataDog/dd-sdk-android/pull/3000)
43+
* [MAINTENANCE] Provide SDK commit SHA1 to the Shopist App. See [#2993](https://github.com/DataDog/dd-sdk-android/pull/2993)
44+
* [MAINTENANCE] Fix detekt issues. See [#2885](https://github.com/DataDog/dd-sdk-android/pull/2885)
45+
* [MAINTENANCE] Remove unused `isConstantClass` variable. See [#2984](https://github.com/DataDog/dd-sdk-android/pull/2984)
46+
147
# 3.2.0 / 2025-10-13
248

349
* [FEATURE] Support Apollo GraphQL. See [#2845](https://github.com/DataDog/dd-sdk-android/pull/2845)

buildSrc/src/main/kotlin/com/datadog/gradle/config/AndroidConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object AndroidConfig {
2020
const val MIN_SDK_FOR_AUTO = 29
2121
const val BUILD_TOOLS_VERSION = "36.0.0"
2222

23-
val VERSION = Version(3, 3, 0, Version.Type.Snapshot)
23+
val VERSION = Version(3, 4, 0, Version.Type.Snapshot)
2424
}
2525

2626
// TODO RUM-628 Switch to Java 17 bytecode

dd-sdk-android-core/api/apiSurface

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class com.datadog.android._InternalProxy
3131
fun error(String, Throwable? = null)
3232
fun error(String, String?, String?)
3333
val _telemetry: _TelemetryProxy
34+
fun setMetricTelemetrySampleRateBypass(Float)
3435
fun setCustomAppVersion(String)
3536
companion object
3637
fun allowClearTextHttp(com.datadog.android.core.configuration.Configuration.Builder): com.datadog.android.core.configuration.Configuration.Builder
@@ -68,7 +69,7 @@ interface com.datadog.android.api.SdkCore
6869
data class com.datadog.android.api.context.AccountInfo
6970
constructor(String, String? = null, Map<String, Any?> = emptyMap())
7071
data class com.datadog.android.api.context.DatadogContext
71-
constructor(com.datadog.android.DatadogSite, String, String, String, String, String, String, String, TimeInfo, ProcessInfo, NetworkInfo, DeviceInfo, UserInfo, AccountInfo?, com.datadog.android.privacy.TrackingConsent, String?, Map<String, Map<String, Any?>>)
72+
constructor(com.datadog.android.DatadogSite, String, String, String, String, Int, String, String, String, TimeInfo, ProcessInfo, NetworkInfo, DeviceInfo, UserInfo, AccountInfo?, com.datadog.android.privacy.TrackingConsent, String?, Map<String, Map<String, Any?>>)
7273
data class com.datadog.android.api.context.DeviceInfo
7374
constructor(String, String, String, DeviceType, String, String, String, String, String, Int?, LocaleInfo)
7475
enum com.datadog.android.api.context.DeviceType
@@ -378,6 +379,7 @@ object com.datadog.android.log.LogAttributes
378379
const val APPLICATION_PACKAGE: String
379380
const val APPLICATION_VERSION: String
380381
const val ENV: String
382+
const val SERVICE: String
381383
const val DATE: String
382384
const val DB_INSTANCE: String
383385
const val DB_OPERATION: String

dd-sdk-android-core/api/dd-sdk-android-core.api

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public final class com/datadog/android/_InternalProxy {
7575
public static final field Companion Lcom/datadog/android/_InternalProxy$Companion;
7676
public final fun get_telemetry ()Lcom/datadog/android/_InternalProxy$_TelemetryProxy;
7777
public final fun setCustomAppVersion (Ljava/lang/String;)V
78+
public final fun setMetricTelemetrySampleRateBypass (F)V
7879
}
7980

8081
public final class com/datadog/android/_InternalProxy$Companion {
@@ -163,26 +164,27 @@ public final class com/datadog/android/api/context/AccountInfo {
163164
}
164165

165166
public final class com/datadog/android/api/context/DatadogContext {
166-
public fun <init> (Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;)V
167+
public fun <init> (Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;)V
167168
public final fun component1 ()Lcom/datadog/android/DatadogSite;
168-
public final fun component10 ()Lcom/datadog/android/api/context/ProcessInfo;
169-
public final fun component11 ()Lcom/datadog/android/api/context/NetworkInfo;
170-
public final fun component12 ()Lcom/datadog/android/api/context/DeviceInfo;
171-
public final fun component13 ()Lcom/datadog/android/api/context/UserInfo;
172-
public final fun component14 ()Lcom/datadog/android/api/context/AccountInfo;
173-
public final fun component15 ()Lcom/datadog/android/privacy/TrackingConsent;
174-
public final fun component16 ()Ljava/lang/String;
175-
public final fun component17 ()Ljava/util/Map;
169+
public final fun component10 ()Lcom/datadog/android/api/context/TimeInfo;
170+
public final fun component11 ()Lcom/datadog/android/api/context/ProcessInfo;
171+
public final fun component12 ()Lcom/datadog/android/api/context/NetworkInfo;
172+
public final fun component13 ()Lcom/datadog/android/api/context/DeviceInfo;
173+
public final fun component14 ()Lcom/datadog/android/api/context/UserInfo;
174+
public final fun component15 ()Lcom/datadog/android/api/context/AccountInfo;
175+
public final fun component16 ()Lcom/datadog/android/privacy/TrackingConsent;
176+
public final fun component17 ()Ljava/lang/String;
177+
public final fun component18 ()Ljava/util/Map;
176178
public final fun component2 ()Ljava/lang/String;
177179
public final fun component3 ()Ljava/lang/String;
178180
public final fun component4 ()Ljava/lang/String;
179181
public final fun component5 ()Ljava/lang/String;
180-
public final fun component6 ()Ljava/lang/String;
182+
public final fun component6 ()I
181183
public final fun component7 ()Ljava/lang/String;
182184
public final fun component8 ()Ljava/lang/String;
183-
public final fun component9 ()Lcom/datadog/android/api/context/TimeInfo;
184-
public final fun copy (Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;)Lcom/datadog/android/api/context/DatadogContext;
185-
public static synthetic fun copy$default (Lcom/datadog/android/api/context/DatadogContext;Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)Lcom/datadog/android/api/context/DatadogContext;
185+
public final fun component9 ()Ljava/lang/String;
186+
public final fun copy (Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;)Lcom/datadog/android/api/context/DatadogContext;
187+
public static synthetic fun copy$default (Lcom/datadog/android/api/context/DatadogContext;Lcom/datadog/android/DatadogSite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/datadog/android/api/context/TimeInfo;Lcom/datadog/android/api/context/ProcessInfo;Lcom/datadog/android/api/context/NetworkInfo;Lcom/datadog/android/api/context/DeviceInfo;Lcom/datadog/android/api/context/UserInfo;Lcom/datadog/android/api/context/AccountInfo;Lcom/datadog/android/privacy/TrackingConsent;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)Lcom/datadog/android/api/context/DatadogContext;
186188
public fun equals (Ljava/lang/Object;)Z
187189
public final fun getAccountInfo ()Lcom/datadog/android/api/context/AccountInfo;
188190
public final fun getAppBuildId ()Ljava/lang/String;
@@ -201,6 +203,7 @@ public final class com/datadog/android/api/context/DatadogContext {
201203
public final fun getUserInfo ()Lcom/datadog/android/api/context/UserInfo;
202204
public final fun getVariant ()Ljava/lang/String;
203205
public final fun getVersion ()Ljava/lang/String;
206+
public final fun getVersionCode ()I
204207
public fun hashCode ()I
205208
public fun toString ()Ljava/lang/String;
206209
}
@@ -1021,6 +1024,7 @@ public final class com/datadog/android/log/LogAttributes {
10211024
public static final field RUM_APPLICATION_ID Ljava/lang/String;
10221025
public static final field RUM_SESSION_ID Ljava/lang/String;
10231026
public static final field RUM_VIEW_ID Ljava/lang/String;
1027+
public static final field SERVICE Ljava/lang/String;
10241028
public static final field SERVICE_NAME Ljava/lang/String;
10251029
public static final field SOURCE Ljava/lang/String;
10261030
public static final field SOURCE_TYPE Ljava/lang/String;

dd-sdk-android-core/src/main/kotlin/com/datadog/android/_InternalProxy.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
package com.datadog.android
88

9+
import androidx.annotation.FloatRange
910
import com.datadog.android.api.SdkCore
1011
import com.datadog.android.api.feature.Feature
1112
import com.datadog.android.api.feature.FeatureScope
@@ -74,6 +75,12 @@ class _InternalProxy internal constructor(
7475
@Suppress("PropertyName")
7576
val _telemetry: _TelemetryProxy = _TelemetryProxy(sdkCore)
7677

78+
fun setMetricTelemetrySampleRateBypass(
79+
@FloatRange(from = 0.0, to = 100.0) sampleRate: Float
80+
) {
81+
(sdkCore as? DatadogCore)?.coreFeature?.metricTelemetrySampleRateBypass = sampleRate
82+
}
83+
7784
fun setCustomAppVersion(version: String) {
7885
val coreFeature = (sdkCore as? DatadogCore)?.coreFeature
7986
coreFeature?.packageVersionProvider?.version = version

dd-sdk-android-core/src/main/kotlin/com/datadog/android/api/context/DatadogContext.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.datadog.android.privacy.TrackingConsent
2020
* [Unified Service Tagging](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging).
2121
* @property version the version of the application that data is generated from. Used for
2222
* [Unified Service Tagging](https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging).
23+
* @property versionCode the version code of the application.
2324
* @property variant the name of the application variant (if applies).
2425
* @property source denotes the mobile application's platform, such as "ios" or "flutter" that
2526
* data is generated from. See: Datadog [Reserved Attributes](https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#reserved-attributes).
@@ -41,6 +42,7 @@ data class DatadogContext(
4142
val service: String,
4243
val env: String,
4344
val version: String,
45+
val versionCode: Int,
4446
val variant: String,
4547
val source: String,
4648
val sdkVersion: String,

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/CoreFeature.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ internal class CoreFeature(
188188
internal var batchSize: BatchSize = BatchSize.MEDIUM
189189
internal var uploadFrequency: UploadFrequency = UploadFrequency.AVERAGE
190190
internal var batchProcessingLevel: BatchProcessingLevel = BatchProcessingLevel.MEDIUM
191+
internal var metricTelemetrySampleRateBypass: Float? = null
191192
internal var ndkCrashHandler: NdkCrashHandler = NoOpNdkCrashHandler()
192193

193194
@Volatile
@@ -487,7 +488,7 @@ internal class CoreFeature(
487488
}
488489
}
489490

490-
timeProvider = KronosTimeProvider(this)
491+
timeProvider = KronosTimeProvider(this, internalLogger)
491492
}
492493
}
493494

@@ -502,13 +503,16 @@ internal class CoreFeature(
502503
}
503504

504505
private fun readApplicationInformation(appContext: Context, configuration: Configuration) {
506+
val packageInfo = getPackageInfo(appContext)
507+
508+
val versionName = packageInfo?.versionName
509+
510+
@Suppress("DEPRECATION")
511+
val versionCode = packageInfo?.versionCode
512+
505513
packageVersionProvider = DefaultAppVersionProvider(
506-
getPackageInfo(appContext)?.let {
507-
// we need to use the deprecated method because getLongVersionCode method is only
508-
// available from API 28 and above
509-
@Suppress("DEPRECATION")
510-
it.versionName ?: it.versionCode.toString()
511-
} ?: DEFAULT_APP_VERSION
514+
initialVersion = versionName ?: versionCode?.toString() ?: DEFAULT_APP_VERSION,
515+
versionCode = versionCode ?: 0
512516
)
513517
clientToken = configuration.clientToken
514518
serviceName = configuration.service ?: appContext.packageName

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/DatadogContextProvider.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ internal class DatadogContextProvider(
2727
service = coreFeature.serviceName,
2828
env = coreFeature.envName,
2929
version = coreFeature.packageVersionProvider.version,
30+
versionCode = coreFeature.packageVersionProvider.versionCode,
3031
variant = coreFeature.variant,
3132
sdkVersion = coreFeature.sdkVersion,
3233
source = coreFeature.sourceName,

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/NoOpContextProvider.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ internal class NoOpContextProvider : ContextProvider {
2525
service = "",
2626
env = "",
2727
version = "",
28+
versionCode = 0,
2829
variant = "",
2930
source = "",
3031
sdkVersion = "",

dd-sdk-android-core/src/main/kotlin/com/datadog/android/core/internal/logger/SdkInternalLogger.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.datadog.android.Datadog
1212
import com.datadog.android.api.InternalLogger
1313
import com.datadog.android.api.feature.Feature
1414
import com.datadog.android.api.feature.FeatureSdkCore
15+
import com.datadog.android.core.internal.DatadogCore
1516
import com.datadog.android.core.internal.metrics.MethodCalledTelemetry
1617
import com.datadog.android.core.metrics.PerformanceMetric
1718
import com.datadog.android.core.metrics.TelemetryMetricType
@@ -101,7 +102,12 @@ internal class SdkInternalLogger(
101102
samplingRate: Float,
102103
creationSampleRate: Float?
103104
) {
104-
if (!sample(samplingRate)) return
105+
val updatedSamplingRate = (sdkCore as? DatadogCore)
106+
?.coreFeature
107+
?.metricTelemetrySampleRateBypass
108+
?: samplingRate
109+
110+
if (!sample(updatedSamplingRate)) return
105111
val rumFeature = sdkCore?.getFeature(Feature.RUM_FEATURE_NAME) ?: return
106112
val additionalPropertiesMutable = additionalProperties.toMutableMap()
107113
.enrichWithNonNullAttribute(
@@ -110,7 +116,7 @@ internal class SdkInternalLogger(
110116
)
111117
.enrichWithNonNullAttribute(
112118
LocalAttribute.Key.REPORTING_SAMPLING_RATE,
113-
samplingRate
119+
updatedSamplingRate
114120
)
115121

116122
val metricEvent = InternalTelemetryEvent.Metric(

0 commit comments

Comments
 (0)