Skip to content

Commit c083fdf

Browse files
committed
RUM-9899: Fix remaining issues
1 parent f4aa2d4 commit c083fdf

File tree

11 files changed

+26
-29
lines changed

11 files changed

+26
-29
lines changed

features/dd-sdk-android-trace-api/api/apiSurface

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,4 @@ interface com.datadog.android.trace.api.tracer.DatadogTracerBuilder
127127
fun withPartialFlushMinSpans(Int): DatadogTracerBuilder
128128
fun withTag(String, String): DatadogTracerBuilder
129129
fun setBundleWithRumEnabled(Boolean): DatadogTracerBuilder
130+
fun setTraceRateLimit(Int): DatadogTracerBuilder

features/dd-sdk-android-trace-api/api/dd-sdk-android-trace-api.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ public final class com/datadog/android/trace/api/tracer/DatadogTracer$DefaultImp
177177
public abstract interface class com/datadog/android/trace/api/tracer/DatadogTracerBuilder {
178178
public abstract fun build ()Lcom/datadog/android/trace/api/tracer/DatadogTracer;
179179
public abstract fun setBundleWithRumEnabled (Z)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
180+
public abstract fun setTraceRateLimit (I)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
180181
public abstract fun withPartialFlushMinSpans (I)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
181182
public abstract fun withSampleRate (D)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
182183
public abstract fun withServiceName (Ljava/lang/String;)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
@@ -199,6 +200,7 @@ public final class com/datadog/android/trace/api/tracer/NoOpDatadogTracerBuilder
199200
public fun <init> ()V
200201
public fun build ()Lcom/datadog/android/trace/api/tracer/DatadogTracer;
201202
public fun setBundleWithRumEnabled (Z)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
203+
public fun setTraceRateLimit (I)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
202204
public fun withPartialFlushMinSpans (I)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
203205
public fun withSampleRate (D)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
204206
public fun withServiceName (Ljava/lang/String;)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;

features/dd-sdk-android-trace-api/src/main/kotlin/com/datadog/android/trace/api/tracer/DatadogTracerBuilder.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package com.datadog.android.trace.api.tracer
77

88
import androidx.annotation.FloatRange
9+
import androidx.annotation.IntRange
910
import com.datadog.android.trace.TracingHeaderType
1011
import com.datadog.tools.annotation.NoOpImplementation
1112

@@ -71,4 +72,15 @@ interface DatadogTracerBuilder {
7172
* @param enabled true by default
7273
*/
7374
fun setBundleWithRumEnabled(enabled: Boolean): DatadogTracerBuilder
75+
76+
/**
77+
* Sets the trace rate limit. This is the maximum number of traces per second that will be
78+
* accepted. Please note that this property is used in conjunction with the sample rate. If no sample rate
79+
* is provided this property and its related logic will be ignored.
80+
*
81+
* @param traceRateLimit the trace rate limit as a value between 1 and Int.MAX_VALUE (default is Int.MAX_VALUE)
82+
*/
83+
fun setTraceRateLimit(
84+
@IntRange(from = 1, to = Int.MAX_VALUE.toLong()) traceRateLimit: Int
85+
): DatadogTracerBuilder
7486
}

features/dd-sdk-android-trace-otel/src/main/kotlin/com/datadog/android/trace/opentelemetry/OtelTracerProvider.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import com.datadog.android.trace.DatadogTracing
1717
import com.datadog.android.trace.InternalCoreWriterProvider
1818
import com.datadog.android.trace.TracingHeaderType
1919
import com.datadog.android.trace.api.tracer.DatadogTracer
20-
import com.datadog.android.trace.internal.DatadogTracingToolkit
2120
import com.datadog.android.trace.internal.DatadogTracingToolkit.setTraceId128BitGenerationEnabled
2221
import com.datadog.android.trace.opentelemetry.internal.DatadogContextStorageWrapper
2322
import com.datadog.android.trace.opentelemetry.internal.executeIfJavaFunctionPackageExists
@@ -215,7 +214,7 @@ class OtelTracerProvider internal constructor(
215214
fun setTraceRateLimit(
216215
@IntRange(from = 1, to = Int.MAX_VALUE.toLong()) traceRateLimit: Int
217216
): Builder {
218-
DatadogTracingToolkit.setTraceRateLimit(builderDelegate, traceRateLimit)
217+
builderDelegate.setTraceRateLimit(traceRateLimit)
219218
return this
220219
}
221220

features/dd-sdk-android-trace/api/apiSurface

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ object com.datadog.android.trace.internal.DatadogTracingToolkit
3030
var propagationHelper: DatadogPropagationHelper
3131
fun setTracingSamplingPriorityIfNecessary(com.datadog.android.trace.api.span.DatadogSpanContext)
3232
fun setTraceId128BitGenerationEnabled(com.datadog.android.trace.api.tracer.DatadogTracerBuilder): com.datadog.android.trace.api.tracer.DatadogTracerBuilder
33-
fun setTraceRateLimit(com.datadog.android.trace.api.tracer.DatadogTracerBuilder, Int): com.datadog.android.trace.api.tracer.DatadogTracerBuilder
3433
object com.datadog.android.trace.internal.SpanAttributes
3534
const val DATADOG_INITIAL_CONTEXT: String
3635
fun <T> android.database.sqlite.SQLiteDatabase.transactionTraced(String, Boolean = true, com.datadog.android.trace.api.span.DatadogSpan.(android.database.sqlite.SQLiteDatabase) -> T): T

features/dd-sdk-android-trace/api/dd-sdk-android-trace.api

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ public final class com/datadog/android/trace/internal/DatadogTracingToolkit {
6767
public static final field spanIdConverter Lcom/datadog/android/trace/internal/DatadogSpanIdConverter;
6868
public final fun getPropagationHelper ()Lcom/datadog/android/trace/internal/DatadogPropagationHelper;
6969
public final fun setTraceId128BitGenerationEnabled (Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
70-
public final fun setTraceRateLimit (Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;I)Lcom/datadog/android/trace/api/tracer/DatadogTracerBuilder;
7170
public final fun setTracingSamplingPriorityIfNecessary (Lcom/datadog/android/trace/api/span/DatadogSpanContext;)V
7271
}
7372

features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/DatadogTracing.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ object DatadogTracing {
3434
* configurations or features are unavailable.
3535
*/
3636
fun newTracerBuilder(sdkCore: SdkCore = Datadog.getInstance()): DatadogTracerBuilder = when {
37-
DatadogTracingToolkit.builderProvider != null -> {
38-
DatadogTracingToolkit.builderProvider as DatadogTracerBuilder
37+
DatadogTracingToolkit.testBuilderProvider != null -> {
38+
DatadogTracingToolkit.testBuilderProvider as DatadogTracerBuilder
3939
}
4040
sdkCore !is FeatureSdkCore -> {
4141
NoOpDatadogTracerBuilder()

features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/DatadogTracerBuilderAdapter.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
package com.datadog.android.trace.internal
77

8+
import androidx.annotation.IntRange
89
import androidx.annotation.VisibleForTesting
910
import com.datadog.android.api.feature.FeatureSdkCore
1011
import com.datadog.android.trace.TracingHeaderType
@@ -76,12 +77,12 @@ internal class DatadogTracerBuilderAdapter(
7677
bundleWithRumEnabled = enabled
7778
}
7879

79-
internal fun setTraceId128BitGenerationEnabled(traceId128BitGenerationEnabled: Boolean) = apply {
80-
delegate.idGenerationStrategy(IdGenerationStrategy.fromName("SECURE_RANDOM", traceId128BitGenerationEnabled))
80+
override fun setTraceRateLimit(@IntRange(from = 1, to = Int.MAX_VALUE.toLong()) traceRateLimit: Int) = apply {
81+
this.traceRateLimit = traceRateLimit
8182
}
8283

83-
internal fun withTraceRateLimit(traceRateLimit: Int) = apply {
84-
this.traceRateLimit = traceRateLimit
84+
internal fun setTraceId128BitGenerationEnabled(traceId128BitGenerationEnabled: Boolean) = apply {
85+
delegate.idGenerationStrategy(IdGenerationStrategy.fromName("SECURE_RANDOM", traceId128BitGenerationEnabled))
8586
}
8687

8788
@VisibleForTesting

features/dd-sdk-android-trace/src/main/kotlin/com/datadog/android/trace/internal/DatadogTracingToolkit.kt

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66
package com.datadog.android.trace.internal
77

8-
import androidx.annotation.IntRange
98
import com.datadog.android.lint.InternalApi
109
import com.datadog.android.trace.api.span.DatadogSpanContext
1110
import com.datadog.android.trace.api.tracer.DatadogTracerBuilder
@@ -34,7 +33,7 @@ object DatadogTracingToolkit {
3433
var propagationHelper: DatadogPropagationHelper = DatadogPropagationHelper()
3534
internal set
3635

37-
internal var builderProvider: DatadogTracerBuilder? = null
36+
internal var testBuilderProvider: DatadogTracerBuilder? = null
3837

3938
/**
4039
* Sets the tracing sampling priority if it is necessary.
@@ -50,19 +49,4 @@ object DatadogTracingToolkit {
5049
(builder as? DatadogTracerBuilderAdapter)?.setTraceId128BitGenerationEnabled(true)
5150
return builder
5251
}
53-
54-
/**
55-
* Sets the trace rate limit. This is the maximum number of traces per second that will be
56-
* accepted. Please note that this property is used in conjunction with the sample rate. If no sample rate
57-
* is provided this property and its related logic will be ignored.
58-
* @param builder the tracer builder to set the trace rate limit for
59-
* @param traceRateLimit the trace rate limit as a value between 1 and Int.MAX_VALUE (default is Int.MAX_VALUE)
60-
*/
61-
fun setTraceRateLimit(
62-
builder: DatadogTracerBuilder,
63-
@IntRange(from = 1, to = Int.MAX_VALUE.toLong()) traceRateLimit: Int
64-
): DatadogTracerBuilder {
65-
(builder as? DatadogTracerBuilderAdapter)?.withTraceRateLimit(traceRateLimit)
66-
return builder
67-
}
6852
}

features/dd-sdk-android-trace/src/test/kotlin/com/datadog/android/trace/internal/DatadogTracerBuilderAdapterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class DatadogTracerBuilderAdapterTest {
118118
val actual = testedBuilder
119119
.withTag(fakeTagKey, fakeTagValue)
120120
.withSampleRate(fakeSampleRate)
121-
.withTraceRateLimit(fakeTraceLimit)
121+
.setTraceRateLimit(fakeTraceLimit)
122122
.withServiceName(fakeServiceName)
123123
.withTracingHeadersTypes(setOf(fakeHeaderType))
124124
.withPartialFlushMinSpans(fakePartialFlushMinSpans)

0 commit comments

Comments
 (0)