Skip to content

Commit ddbd69a

Browse files
authored
Move continuation capture methods from scope to tracer (#8371)
replaces TraceScope.capture() with Tracer.captureActiveSpan()
1 parent c9b57a0 commit ddbd69a

File tree

16 files changed

+123
-100
lines changed

16 files changed

+123
-100
lines changed

dd-java-agent/instrumentation/opentelemetry/opentelemetry-0.3/src/main/java/datadog/trace/instrumentation/opentelemetry/OtelScope.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@ public class OtelScope implements Scope, TraceScope {
1111
this.delegate = delegate;
1212
}
1313

14-
@Override
15-
public Continuation capture() {
16-
return delegate.capture();
17-
}
18-
1914
@Override
2015
public void close() {
2116
delegate.close();

dd-java-agent/instrumentation/opentracing/api-0.31/src/main/java/datadog/trace/instrumentation/opentracing31/OTScopeManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,6 @@ public Span span() {
6363
return converter.toSpan(delegate.span());
6464
}
6565

66-
@Override
67-
public Continuation capture() {
68-
return delegate.capture();
69-
}
70-
7166
public boolean isFinishSpanOnClose() {
7267
return finishSpanOnClose;
7368
}

dd-java-agent/instrumentation/opentracing/api-0.32/src/main/java/datadog/trace/instrumentation/opentracing32/OTScopeManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,6 @@ public Span span() {
7373
return converter.toSpan(delegate.span());
7474
}
7575

76-
@Override
77-
public Continuation capture() {
78-
return delegate.capture();
79-
}
80-
8176
public boolean isFinishSpanOnClose() {
8277
return finishSpanOnClose;
8378
}

dd-java-agent/instrumentation/play-ws-1/src/main/java/datadog/trace/instrumentation/playws1/AsyncHandlerWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.instrumentation.playws1;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.capture;
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.setAsyncPropagationEnabled;
55
import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
66

@@ -22,7 +22,7 @@ public class AsyncHandlerWrapper implements AsyncHandler {
2222
public AsyncHandlerWrapper(final AsyncHandler delegate, final AgentSpan span) {
2323
this.delegate = delegate;
2424
this.span = span;
25-
continuation = capture();
25+
continuation = captureSpan(span);
2626
}
2727

2828
@Override

dd-java-agent/instrumentation/play-ws-2.1/src/main/java/datadog/trace/instrumentation/playws21/AsyncHandlerWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.instrumentation.playws21;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.capture;
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.setAsyncPropagationEnabled;
55
import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
66

@@ -27,7 +27,7 @@ public class AsyncHandlerWrapper implements AsyncHandler {
2727
public AsyncHandlerWrapper(final AsyncHandler delegate, final AgentSpan span) {
2828
this.delegate = delegate;
2929
this.span = span;
30-
continuation = capture();
30+
continuation = captureSpan(span);
3131
}
3232

3333
@Override

dd-java-agent/instrumentation/play-ws-2/src/main/java/datadog/trace/instrumentation/playws2/AsyncHandlerWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.instrumentation.playws2;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.capture;
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.setAsyncPropagationEnabled;
55
import static datadog.trace.instrumentation.playws.PlayWSClientDecorator.DECORATE;
66

@@ -26,7 +26,7 @@ public class AsyncHandlerWrapper implements AsyncHandler {
2626
public AsyncHandlerWrapper(final AsyncHandler delegate, final AgentSpan span) {
2727
this.delegate = delegate;
2828
this.span = span;
29-
continuation = capture();
29+
continuation = captureSpan(span);
3030
}
3131

3232
@Override

dd-java-agent/instrumentation/servicetalk/src/test/groovy/ContextPreservingInstrumentationTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class ContextPreservingInstrumentationTest extends AgentTestRunner {
113113
*/
114114
private class ParentContext {
115115
final ContextMap contextMap = AsyncContext.context().copy()
116-
final AgentScope.Continuation spanContinuation = AgentTracer.capture()
116+
final AgentScope.Continuation spanContinuation = AgentTracer.captureActiveSpan()
117117

118118
def releaseParentSpan() {
119119
spanContinuation.cancel()

dd-java-agent/instrumentation/zio/zio-2.0/src/main/java/datadog/trace/instrumentation/zio/v2_0/FiberContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.instrumentation.zio.v2_0;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.capture;
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureActiveSpan;
44

55
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
66
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
@@ -16,7 +16,7 @@ private FiberContext(ScopeState state) {
1616
this.state = state;
1717
this.scope = null;
1818
this.oldState = null;
19-
this.continuation = capture();
19+
this.continuation = captureActiveSpan();
2020
}
2121

2222
public static FiberContext create() {

dd-trace-api/src/main/java/datadog/trace/api/GlobalTracer.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,27 @@ public String getSpanId() {
2626
}
2727

2828
@Override
29-
public boolean isAsyncPropagationEnabled() {
29+
public boolean addTraceInterceptor(TraceInterceptor traceInterceptor) {
3030
return false;
3131
}
3232

3333
@Override
34-
public void setAsyncPropagationEnabled(boolean asyncPropagationEnabled) {}
34+
public TraceScope muteTracing() {
35+
return NoopTraceScope.INSTANCE;
36+
}
3537

3638
@Override
37-
public boolean addTraceInterceptor(TraceInterceptor traceInterceptor) {
38-
return false;
39+
public TraceScope.Continuation captureActiveSpan() {
40+
return NoopTraceScope.NoopContinuation.INSTANCE;
3941
}
4042

4143
@Override
42-
public TraceScope muteTracing() {
43-
return NoopTraceScope.INSTANCE;
44+
public boolean isAsyncPropagationEnabled() {
45+
return false;
4446
}
47+
48+
@Override
49+
public void setAsyncPropagationEnabled(boolean asyncPropagationEnabled) {}
4550
};
4651

4752
private static final Collection<Callback> installationCallbacks = new ArrayList<>();

dd-trace-api/src/main/java/datadog/trace/api/Tracer.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,31 @@ public interface Tracer {
1414
*/
1515
String getSpanId();
1616

17+
/**
18+
* Add a new interceptor to the tracer. Interceptors with duplicate priority to existing ones are
19+
* ignored.
20+
*
21+
* @param traceInterceptor
22+
* @return false if an interceptor with same priority exists.
23+
*/
24+
boolean addTraceInterceptor(TraceInterceptor traceInterceptor);
25+
26+
TraceScope muteTracing();
27+
28+
/**
29+
* When asynchronous propagation is enabled, prevent the currently active trace from reporting
30+
* until the returned Continuation is either activated (and the returned scope is closed) or the
31+
* continuation is canceled.
32+
*
33+
* <p>Should be called on the parent thread.
34+
*
35+
* @deprecated Unstable API. Might be removed at any time.
36+
* @return Continuation of the active span, no-op continuation if there's no active span or
37+
* asynchronous propagation is disabled.
38+
*/
39+
@Deprecated
40+
TraceScope.Continuation captureActiveSpan();
41+
1742
/**
1843
* Checks whether asynchronous propagation is enabled, meaning this context will propagate across
1944
* asynchronous boundaries.
@@ -36,15 +61,4 @@ public interface Tracer {
3661
*/
3762
@Deprecated
3863
void setAsyncPropagationEnabled(boolean asyncPropagationEnabled);
39-
40-
/**
41-
* Add a new interceptor to the tracer. Interceptors with duplicate priority to existing ones are
42-
* ignored.
43-
*
44-
* @param traceInterceptor
45-
* @return false if an interceptor with same priority exists.
46-
*/
47-
boolean addTraceInterceptor(TraceInterceptor traceInterceptor);
48-
49-
TraceScope muteTracing();
5064
}

0 commit comments

Comments
 (0)