Skip to content

Commit 291687f

Browse files
committed
RUM-9902 - simplifying api
1 parent b13b486 commit 291687f

File tree

45 files changed

+300
-328
lines changed

Some content is hidden

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

45 files changed

+300
-328
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import com.datadog.android.telemetry.model.TelemetryDebugEvent
4646
import com.datadog.android.telemetry.model.TelemetryErrorEvent
4747
import com.datadog.android.telemetry.model.TelemetryUsageEvent
4848
import com.datadog.android.trace.GlobalDatadogTracerHolder
49-
import com.datadog.android.trace.api.span.clear
49+
import com.datadog.android.trace.api.clear
5050
import com.datadog.android.trace.api.tracer.DatadogTracer
5151
import com.datadog.tools.unit.forge.aThrowable
5252
import fr.xgouchet.elmyr.Forge

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ public abstract interface class com/datadog/android/trace/api/span/DatadogSpanLo
154154
public abstract fun logErrorMessage (Ljava/lang/String;Lcom/datadog/android/trace/api/span/DatadogSpan;)V
155155
}
156156

157+
public abstract interface class com/datadog/android/trace/api/span/DatadogSpanWriter {
158+
}
159+
157160
public final class com/datadog/android/trace/api/span/NoOpDatadogSpanLogger : com/datadog/android/trace/api/span/DatadogSpanLogger {
158161
public fun <init> ()V
159162
public fun log (Ljava/lang/String;Lcom/datadog/android/trace/api/span/DatadogSpan;)V
@@ -163,14 +166,14 @@ public final class com/datadog/android/trace/api/span/NoOpDatadogSpanLogger : co
163166
}
164167

165168
public abstract interface class com/datadog/android/trace/api/trace/DatadogTraceId {
166-
public abstract fun toHexString ()Ljava/lang/String;
167-
public abstract fun toLong ()J
168169
}
169170

170-
public abstract interface class com/datadog/android/trace/api/trace/DatadogTraceIdFactory {
171+
public abstract interface class com/datadog/android/trace/api/trace/DatadogTraceIdConverter {
171172
public abstract fun from (J)Lcom/datadog/android/trace/api/trace/DatadogTraceId;
172173
public abstract fun from (Ljava/lang/String;)Lcom/datadog/android/trace/api/trace/DatadogTraceId;
173174
public abstract fun fromHex (Ljava/lang/String;)Lcom/datadog/android/trace/api/trace/DatadogTraceId;
175+
public abstract fun toHexString (Lcom/datadog/android/trace/api/trace/DatadogTraceId;)Ljava/lang/String;
176+
public abstract fun toLong (Lcom/datadog/android/trace/api/trace/DatadogTraceId;)J
174177
public abstract fun zero ()Lcom/datadog/android/trace/api/trace/DatadogTraceId;
175178
}
176179

features/dd-sdk-android-trace-api/src/main/kotlin/com/datadog/android/trace/api/span/DatadogSpanContext.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66
package com.datadog.android.trace.api.span
77

8-
import com.datadog.android.lint.InternalApi
98
import com.datadog.android.trace.api.trace.DatadogTraceId
109
import com.datadog.tools.annotation.NoOpImplementation
1110

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2016-Present Datadog, Inc.
5+
*/
6+
package com.datadog.android.trace.api.span
7+
8+
/**
9+
* A writer is responsible to send collected spans to some place.
10+
* This wrapper is required to no expose CoreTracer wrapper to dependant modules
11+
* */
12+
interface DatadogSpanWriter

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

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,5 @@ import com.datadog.tools.annotation.NoOpImplementation
1313
* This interface is typically used with a factory (`DatadogTraceIdFactory`) to generate or retrieve trace IDs.
1414
*/
1515
@NoOpImplementation
16-
interface DatadogTraceId {
17-
/**
18-
* Converts the Datadog trace ID to its numeric representation as a `Long`.
19-
*
20-
* @return the numeric value of the trace ID as a `Long`.
21-
*/
22-
fun toLong(): Long
16+
interface DatadogTraceId
2317

24-
/**
25-
* Converts the current trace ID into its hexadecimal string representation.
26-
*
27-
* @return the hexadecimal string representation of the trace ID.
28-
*/
29-
fun toHexString(): String
30-
}
Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package com.datadog.android.trace.api.trace
88
/**
99
* Factory interface for creating and manipulating `DatadogTraceId` instances.
1010
*/
11-
interface DatadogTraceIdFactory {
11+
interface DatadogTraceIdConverter {
1212
/**
1313
* Creates a [DatadogTraceId] instance representing the zero value.
1414
*
@@ -39,4 +39,18 @@ interface DatadogTraceIdFactory {
3939
* @return a [DatadogTraceId] instance representing the given trace ID.
4040
*/
4141
fun fromHex(id: String): DatadogTraceId
42+
43+
/**
44+
* Converts the Datadog trace ID to its numeric representation as a `Long`.
45+
*
46+
* @return the numeric value of the trace ID as a `Long`.
47+
*/
48+
fun toLong(traceId: DatadogTraceId): Long
49+
50+
/**
51+
* Converts the current trace ID into its hexadecimal string representation.
52+
*
53+
* @return the hexadecimal string representation of the trace ID.
54+
*/
55+
fun toHexString(traceId: DatadogTraceId): String
4256
}

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

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import androidx.annotation.FloatRange
99
import androidx.annotation.IntRange
1010
import com.datadog.android.trace.TracingHeaderType
1111
import com.datadog.tools.annotation.NoOpImplementation
12-
import java.util.Properties
1312

1413
/**
1514
* Builder interface for creating and configuring a [DatadogTracer] instance.
@@ -24,15 +23,6 @@ interface DatadogTracerBuilder {
2423
*/
2524
fun build(): DatadogTracer
2625

27-
/**
28-
* Configures the builder with the provided set of properties.
29-
*
30-
* @param properties The properties to configure the Datadog Tracer with. These properties could define
31-
* specific behaviors or configurations that the tracer should utilize.
32-
* @return The updated instance of [DatadogTracerBuilder] to allow method chaining.
33-
*/
34-
fun withProperties(properties: Properties): DatadogTracerBuilder
35-
3626
/**
3727
* Configures the builder with the specified set of tracing header types. Tracing headers
3828
* define the standards used for propagating trace information across different components.
@@ -53,15 +43,6 @@ interface DatadogTracerBuilder {
5343
*/
5444
fun withServiceName(serviceName: String): DatadogTracerBuilder
5545

56-
/**
57-
* Configures the builder with a specific ID generation strategy.
58-
*
59-
* @param key The key representing the strategy to be used for generating IDs.
60-
* @param traceId128BitGenerationEnabled A flag indicating whether 128-bit trace ID generation should be enabled.
61-
* @return The updated instance of [DatadogTracerBuilder] to allow method chaining.
62-
*/
63-
fun withIdGenerationStrategy(key: String, traceId128BitGenerationEnabled: Boolean): DatadogTracerBuilder
64-
6546
/**
6647
* Sets the sample rate of spans.
6748
* @param sampleRate the sample rate as a percentage between 0 and 100 (default is 100%)

features/dd-sdk-android-trace-otel/src/main/java/com/datadog/opentelemetry/trace/OtelExtractedContext.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import com.datadog.android.trace.api.trace.DatadogTraceId;
1414
import com.datadog.android.trace.api.DatadogTracingConstants;
1515
import com.datadog.android.trace.api.span.DatadogSpanContext;
16-
import com.datadog.android.trace.impl.internal.DatadogTracingInternal;
16+
import com.datadog.android.trace.impl.internal.DatadogTracingInternalToolkit;
1717

1818
import java.util.Collections;
1919
import java.util.Locale;
@@ -29,8 +29,8 @@ public class OtelExtractedContext implements DatadogSpanContext {
2929
private final int prioritySampling;
3030

3131
private OtelExtractedContext(SpanContext context) {
32-
traceId = DatadogTracingInternal.traceIdFactory.fromHex(context.getTraceId());
33-
spanId = DatadogTracingInternal.spanIdConverter.fromHex(context.getSpanId());
32+
traceId = DatadogTracingInternalToolkit.traceIdConverter.fromHex(context.getTraceId());
33+
spanId = DatadogTracingInternalToolkit.spanIdConverter.fromHex(context.getSpanId());
3434
prioritySampling = context.isSampled()
3535
? DatadogTracingConstants.PrioritySampling.SAMPLER_KEEP
3636
: DatadogTracingConstants.PrioritySampling.UNSET;

features/dd-sdk-android-trace-otel/src/main/java/com/datadog/opentelemetry/trace/OtelSpanContext.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import com.datadog.android.trace.api.span.DatadogSpan;
1212
import com.datadog.android.trace.api.span.DatadogSpanContext;
13-
import com.datadog.android.trace.impl.internal.DatadogTracingInternal;
13+
import com.datadog.android.trace.impl.internal.DatadogTracingInternalToolkit;
1414

1515
import io.opentelemetry.api.trace.SpanContext;
1616
import io.opentelemetry.api.trace.TraceFlags;
@@ -47,15 +47,15 @@ public static SpanContext fromRemote(DatadogSpanContext extracted, TraceState tr
4747
@Override
4848
public String getTraceId() {
4949
if (this.traceId == null) {
50-
this.traceId = this.delegate.getTraceId().toHexString();
50+
this.traceId = DatadogTracingInternalToolkit.traceIdConverter.toHexString(this.delegate.getTraceId());
5151
}
5252
return this.traceId;
5353
}
5454

5555
@Override
5656
public String getSpanId() {
5757
if (this.spanId == null) {
58-
this.spanId = DatadogTracingInternal.spanIdConverter.toHexStringPadded(this.delegate.getSpanId());
58+
this.spanId = DatadogTracingInternalToolkit.spanIdConverter.toHexStringPadded(this.delegate.getSpanId());
5959
}
6060
return this.spanId;
6161
}

features/dd-sdk-android-trace-otel/src/main/java/com/datadog/opentelemetry/trace/OtelSpanLink.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66

77
package com.datadog.opentelemetry.trace;
88

9-
import static java.util.Objects.requireNonNull;
109

1110
import androidx.annotation.NonNull;
1211
import androidx.annotation.Nullable;
1312

1413
import com.datadog.android.trace.api.span.DatadogSpanLink;
1514
import com.datadog.android.trace.api.trace.DatadogTraceId;
16-
import com.datadog.android.trace.impl.internal.DatadogTracingInternal;
15+
import com.datadog.android.trace.impl.internal.DatadogTracingInternalToolkit;
1716
import com.datadog.opentelemetry.context.propagation.TraceStateHelper;
1817

1918
import java.util.Collections;
@@ -35,8 +34,8 @@ public OtelSpanLink(SpanContext spanContext) {
3534
}
3635

3736
public OtelSpanLink(SpanContext spanContext, io.opentelemetry.api.common.Attributes attributes) {
38-
traceId = DatadogTracingInternal.traceIdFactory.fromHex(spanContext.getTraceId());
39-
spanId = DatadogTracingInternal.spanIdConverter.fromHex(spanContext.getSpanId());
37+
traceId = DatadogTracingInternalToolkit.traceIdConverter.fromHex(spanContext.getTraceId());
38+
spanId = DatadogTracingInternalToolkit.spanIdConverter.fromHex(spanContext.getSpanId());
4039
sampled = spanContext.isSampled();
4140
traceState = TraceStateHelper.encodeHeader(spanContext.getTraceState());
4241
this.attributes = convertAttributes(attributes);
@@ -112,8 +111,7 @@ public String getTraceStrace() {
112111
}
113112

114113
private static <T> void putArray(Map<String, String> attributes, String key, List<T> array) {
115-
requireNonNull(key, "key must not be null");
116-
if (array != null) {
114+
if (key != null && array != null) {
117115
for (int index = 0; index < array.size(); index++) {
118116
Object value = array.get(index);
119117
if (value != null) {

0 commit comments

Comments
 (0)