Skip to content

Commit a11c635

Browse files
committed
Support Context.with(span) for convenience
1 parent d8aab6e commit a11c635

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

internal-api/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ dependencies {
207207
// references TraceScope and Continuation from public api
208208
api project(':dd-trace-api')
209209
api libs.slf4j
210+
api project(':components:context')
210211
api project(":utils:time-utils")
211212

212213
// has to be loaded by system classloader:

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package datadog.trace.bootstrap.instrumentation.api;
22

3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.SPAN_KEY;
4+
5+
import datadog.context.Context;
6+
import datadog.context.ImplicitContextKeyed;
37
import datadog.trace.api.DDTraceId;
48
import datadog.trace.api.TraceConfig;
59
import datadog.trace.api.gateway.IGSpanInfo;
610
import datadog.trace.api.gateway.RequestContext;
711
import datadog.trace.api.interceptor.MutableSpan;
812

9-
public interface AgentSpan extends MutableSpan, IGSpanInfo, WithAgentSpan {
13+
public interface AgentSpan extends MutableSpan, ImplicitContextKeyed, IGSpanInfo, WithAgentSpan {
1014

1115
DDTraceId getTraceId();
1216

@@ -145,4 +149,9 @@ public interface AgentSpan extends MutableSpan, IGSpanInfo, WithAgentSpan {
145149
default AgentSpan asAgentSpan() {
146150
return this;
147151
}
152+
153+
@Override
154+
default Context storeInto(Context context) {
155+
return context.with(SPAN_KEY, this);
156+
}
148157
}

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.trace.api.ConfigDefaults.DEFAULT_ASYNC_PROPAGATING;
44
import static java.util.Collections.emptyList;
55

6+
import datadog.context.ContextKey;
67
import datadog.trace.api.DDSpanId;
78
import datadog.trace.api.DDTraceId;
89
import datadog.trace.api.EndpointCheckpointer;
@@ -33,6 +34,8 @@
3334
public class AgentTracer {
3435
private static final String DEFAULT_INSTRUMENTATION_NAME = "datadog";
3536

37+
static final ContextKey<AgentSpan> SPAN_KEY = ContextKey.named("dd-span-key");
38+
3639
// Implicit parent
3740
/** Deprecated. Use {@link #startSpan(String, CharSequence)} instead. */
3841
@Deprecated

0 commit comments

Comments
 (0)