Skip to content

Commit 5b7780b

Browse files
authored
Check async propagation flag via agent tracer (#8397)
1 parent 919d607 commit 5b7780b

File tree

16 files changed

+48
-52
lines changed

16 files changed

+48
-52
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/java/concurrent/ExecutorInstrumentationUtils.java

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package datadog.trace.bootstrap.instrumentation.java.concurrent;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
4+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
45
import static datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFilter.ExcludeType;
56

67
import datadog.trace.bootstrap.ContextStore;
7-
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
88
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
99
import java.util.concurrent.Executor;
1010
import org.slf4j.Logger;
@@ -26,14 +26,10 @@ public static boolean shouldAttachStateToTask(final Object task, final Executor
2626
if (task == null) {
2727
return false;
2828
}
29-
3029
if (ExcludeFilter.exclude(ExcludeType.EXECUTOR, task)) {
3130
return false;
3231
}
33-
34-
final AgentScope scope = activeScope();
35-
36-
return scope != null && scope.isAsyncPropagating();
32+
return activeSpan() != null && isAsyncPropagationEnabled();
3733
}
3834

3935
/**

dd-java-agent/instrumentation/armeria-grpc/src/test/groovy/ArmeriaGrpcStreamingTest.groovy

+6-6
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
7979
serverReceived << value.message
8080

8181
(1..msgCount).each {
82-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
82+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
8383
observer.onNext(value)
8484
} else {
8585
observer.onError(new IllegalStateException("not async propagating!"))
@@ -89,7 +89,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
8989

9090
@Override
9191
void onError(Throwable t) {
92-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
92+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
9393
error.set(t)
9494
observer.onError(t)
9595
} else {
@@ -99,7 +99,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
9999

100100
@Override
101101
void onCompleted() {
102-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
102+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
103103
observer.onCompleted()
104104
} else {
105105
observer.onError(new IllegalStateException("not async propagating!"))
@@ -122,7 +122,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
122122
def streamObserver = client.conversation(new StreamObserver<Helloworld.Response>() {
123123
@Override
124124
void onNext(Helloworld.Response value) {
125-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
125+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
126126
clientReceived << value.message
127127
} else {
128128
error.set(new IllegalStateException("not async propagating!"))
@@ -131,7 +131,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
131131

132132
@Override
133133
void onError(Throwable t) {
134-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
134+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
135135
error.set(t)
136136
} else {
137137
error.set(new IllegalStateException("not async propagating!"))
@@ -140,7 +140,7 @@ abstract class ArmeriaGrpcStreamingTest extends VersionedNamingTestBase {
140140

141141
@Override
142142
void onCompleted() {
143-
if (!TEST_TRACER.activeScope().isAsyncPropagating()) {
143+
if (!TEST_TRACER.isAsyncPropagationEnabled()) {
144144
error.set(new IllegalStateException("not async propagating!"))
145145
}
146146
}

dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcCodeOriginTest.groovy

+6-6
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
6969
serverReceived << value.message
7070

7171
(1..msgCount).each {
72-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
72+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
7373
observer.onNext(value)
7474
} else {
7575
observer.onError(new IllegalStateException("not async propagating!"))
@@ -79,7 +79,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
7979

8080
@Override
8181
void onError(Throwable t) {
82-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
82+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
8383
error.set(t)
8484
observer.onError(t)
8585
} else {
@@ -89,7 +89,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
8989

9090
@Override
9191
void onCompleted() {
92-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
92+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
9393
observer.onCompleted()
9494
} else {
9595
observer.onError(new IllegalStateException("not async propagating!"))
@@ -109,7 +109,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
109109
def streamObserver = client.conversation(new StreamObserver<Helloworld.Response>() {
110110
@Override
111111
void onNext(Helloworld.Response value) {
112-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
112+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
113113
clientReceived << value.message
114114
} else {
115115
error.set(new IllegalStateException("not async propagating!"))
@@ -118,7 +118,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
118118

119119
@Override
120120
void onError(Throwable t) {
121-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
121+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
122122
error.set(t)
123123
} else {
124124
error.set(new IllegalStateException("not async propagating!"))
@@ -127,7 +127,7 @@ abstract class GrpcCodeOriginTest extends VersionedNamingTestBase {
127127

128128
@Override
129129
void onCompleted() {
130-
if (!TEST_TRACER.activeScope().isAsyncPropagating()) {
130+
if (!TEST_TRACER.isAsyncPropagationEnabled()) {
131131
error.set(new IllegalStateException("not async propagating!"))
132132
}
133133
}

dd-java-agent/instrumentation/grpc-1.5/src/test/groovy/GrpcStreamingTest.groovy

+6-6
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
6767
serverReceived << value.message
6868

6969
(1..msgCount).each {
70-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
70+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
7171
observer.onNext(value)
7272
} else {
7373
observer.onError(new IllegalStateException("not async propagating!"))
@@ -77,7 +77,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
7777

7878
@Override
7979
void onError(Throwable t) {
80-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
80+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
8181
error.set(t)
8282
observer.onError(t)
8383
} else {
@@ -87,7 +87,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
8787

8888
@Override
8989
void onCompleted() {
90-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
90+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
9191
observer.onCompleted()
9292
} else {
9393
observer.onError(new IllegalStateException("not async propagating!"))
@@ -107,7 +107,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
107107
def streamObserver = client.conversation(new StreamObserver<Helloworld.Response>() {
108108
@Override
109109
void onNext(Helloworld.Response value) {
110-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
110+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
111111
clientReceived << value.message
112112
} else {
113113
error.set(new IllegalStateException("not async propagating!"))
@@ -116,7 +116,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
116116

117117
@Override
118118
void onError(Throwable t) {
119-
if (TEST_TRACER.activeScope().isAsyncPropagating()) {
119+
if (TEST_TRACER.isAsyncPropagationEnabled()) {
120120
error.set(t)
121121
} else {
122122
error.set(new IllegalStateException("not async propagating!"))
@@ -125,7 +125,7 @@ abstract class GrpcStreamingTest extends VersionedNamingTestBase {
125125

126126
@Override
127127
void onCompleted() {
128-
if (!TEST_TRACER.activeScope().isAsyncPropagating()) {
128+
if (!TEST_TRACER.isAsyncPropagationEnabled()) {
129129
error.set(new IllegalStateException("not async propagating!"))
130130
}
131131
}

dd-java-agent/instrumentation/kafka-clients-0.11/src/latestDepTest/groovy/KafkaClientTestBase.groovy

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import static datadog.trace.agent.test.utils.TraceUtils.basicSpan
22
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope
3+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled
44

55
import datadog.trace.agent.test.asserts.TraceAssert
66
import datadog.trace.agent.test.naming.VersionedNamingTestBase
@@ -177,7 +177,7 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
177177
String greeting = "Hello Spring Kafka Sender!"
178178
runUnderTrace("parent") {
179179
producer.send(new ProducerRecord(SHARED_TOPIC, greeting)) { meta, ex ->
180-
assert activeScope().isAsyncPropagating()
180+
assert isAsyncPropagationEnabled()
181181
if (ex == null) {
182182
runUnderTrace("producer callback") {}
183183
} else {

dd-java-agent/instrumentation/kafka-clients-0.11/src/test/groovy/KafkaClientTestBase.groovy

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import static datadog.trace.agent.test.utils.TraceUtils.basicSpan
22
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope
43
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan
4+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled
55

66
import datadog.trace.agent.test.asserts.TraceAssert
77
import datadog.trace.agent.test.naming.VersionedNamingTestBase
@@ -147,7 +147,7 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
147147
AvroMock message = new AvroMock("{\"name\":\"test\"}")
148148
runUnderTrace("parent") {
149149
producer.send(new ProducerRecord(SHARED_TOPIC, message)) { meta, ex ->
150-
assert activeScope().isAsyncPropagating()
150+
assert isAsyncPropagationEnabled()
151151
if (ex == null) {
152152
runUnderTrace("producer callback") {}
153153
} else {
@@ -227,7 +227,7 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
227227
String greeting = "Hello Spring Kafka Sender!"
228228
runUnderTrace("parent") {
229229
producer.send(new ProducerRecord(SHARED_TOPIC, greeting)) { meta, ex ->
230-
assert activeScope().isAsyncPropagating()
230+
assert isAsyncPropagationEnabled()
231231
if (ex == null) {
232232
runUnderTrace("producer callback") {}
233233
} else {

dd-java-agent/instrumentation/kafka-clients-3.8/src/test/groovy/KafkaClientTestBase.groovy

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ import java.util.concurrent.LinkedBlockingQueue
3838
import java.util.concurrent.TimeUnit
3939

4040
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
41-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope
4241
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan
42+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled
4343

4444
abstract class KafkaClientTestBase extends VersionedNamingTestBase {
4545
static final SHARED_TOPIC = "shared.topic"
@@ -201,7 +201,7 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
201201
String greeting = "Hello Spring Kafka Sender!"
202202
runUnderTrace("parent") {
203203
producer.send(new ProducerRecord(SHARED_TOPIC,greeting)) { meta, ex ->
204-
assert activeScope().isAsyncPropagating()
204+
assert isAsyncPropagationEnabled()
205205
if (ex == null) {
206206
runUnderTrace("producer callback") {}
207207
} else {
@@ -368,7 +368,7 @@ abstract class KafkaClientTestBase extends VersionedNamingTestBase {
368368
String greeting = "Hello Spring Kafka Sender!"
369369
runUnderTrace("parent") {
370370
kafkaTemplate.send(SHARED_TOPIC, greeting).whenComplete { meta, ex ->
371-
assert activeScope().isAsyncPropagating()
371+
assert isAsyncPropagationEnabled()
372372
if (ex == null) {
373373
runUnderTrace("producer callback") {}
374374
} else {

dd-java-agent/instrumentation/kafka-clients-3.8/src/test/groovy/KafkaCodeOriginForkedTest.groovy

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import java.util.concurrent.TimeUnit
2121

2222
import static datadog.trace.agent.test.asserts.TagsAssert.assertTags
2323
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
24-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope
24+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled
2525

2626
class KafkaCodeOriginForkedTest extends VersionedNamingTestBase {
2727
static final SHARED_TOPIC = "shared.topic"
@@ -147,7 +147,7 @@ class KafkaCodeOriginForkedTest extends VersionedNamingTestBase {
147147
String greeting = "Hello Spring Kafka Sender!"
148148
runUnderTrace("parent") {
149149
producer.send(new ProducerRecord(SHARED_TOPIC,greeting)) { meta, ex ->
150-
assert activeScope().isAsyncPropagating()
150+
assert isAsyncPropagationEnabled()
151151
if (ex == null) {
152152
runUnderTrace("producer callback") {}
153153
} else {

dd-java-agent/instrumentation/scala-promise/src/main/java/datadog/trace/instrumentation/scala/PromiseHelper.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package datadog.trace.instrumentation.scala;
22

3-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
43
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
54
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.captureSpan;
5+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
66

77
import datadog.trace.api.InstrumenterConfig;
88
import datadog.trace.bootstrap.ContextStore;
@@ -28,9 +28,9 @@ public class PromiseHelper {
2828
* @return the Span or null
2929
*/
3030
public static AgentSpan getSpan() {
31-
final AgentScope scope = activeScope();
32-
if (null != scope && scope.isAsyncPropagating()) {
33-
return scope.span();
31+
final AgentSpan span = activeSpan();
32+
if (null != span && isAsyncPropagationEnabled()) {
33+
return span;
3434
}
3535
return null;
3636
}

dd-java-agent/instrumentation/vertx-web-3.4/src/test/java/server/VertxTestServer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN;
1919
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.USER_BLOCK;
2020
import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTraceAsync;
21-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
2221
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
22+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
2323

2424
import datadog.appsec.api.blocking.Blocking;
2525
import datadog.trace.agent.test.base.HttpServerTest;
@@ -254,7 +254,7 @@ private static void exception() {
254254
private static void controller(
255255
RoutingContext ctx, final ServerEndpoint endpoint, final Runnable runnable) {
256256
assert activeSpan() != null : "Controller should have a parent span.";
257-
assert activeScope().isAsyncPropagating() : "Scope should be propagating async.";
257+
assert isAsyncPropagationEnabled() : "Span should be propagating async.";
258258
ctx.response()
259259
.putHeader(
260260
HttpServerTest.getIG_RESPONSE_HEADER(), HttpServerTest.getIG_RESPONSE_HEADER_VALUE());

dd-java-agent/instrumentation/vertx-web-3.9/src/test/java/server/IastVertx39TestVerticle.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN;
1717
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.USER_BLOCK;
1818
import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTraceAsync;
19-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
2019
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
20+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
2121

2222
import datadog.appsec.api.blocking.Blocking;
2323
import datadog.trace.agent.test.base.HttpServerTest;
@@ -252,7 +252,7 @@ private static void exception() {
252252
private static void controller(
253253
RoutingContext ctx, final ServerEndpoint endpoint, final Runnable runnable) {
254254
assert activeSpan() != null : "Controller should have a parent span.";
255-
assert activeScope().isAsyncPropagating() : "Scope should be propagating async.";
255+
assert isAsyncPropagationEnabled() : "Span should be propagating async.";
256256
ctx.response()
257257
.putHeader(
258258
HttpServerTest.getIG_RESPONSE_HEADER(), HttpServerTest.getIG_RESPONSE_HEADER_VALUE());

dd-java-agent/instrumentation/vertx-web-4.0/src/latestDepTest/java/server/VertxTestServer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN;
1919
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.USER_BLOCK;
2020
import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTraceAsync;
21-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
2221
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
22+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
2323

2424
import datadog.appsec.api.blocking.Blocking;
2525
import datadog.trace.agent.test.base.HttpServerTest;
@@ -271,7 +271,7 @@ private static void exception() {
271271
private static void controller(
272272
RoutingContext ctx, final ServerEndpoint endpoint, final Runnable runnable) {
273273
assert activeSpan() != null : "Controller should have a parent span.";
274-
assert activeScope().isAsyncPropagating() : "Scope should be propagating async.";
274+
assert isAsyncPropagationEnabled() : "Span should be propagating async.";
275275
ctx.response()
276276
.putHeader(
277277
HttpServerTest.getIG_RESPONSE_HEADER(), HttpServerTest.getIG_RESPONSE_HEADER_VALUE());

dd-java-agent/instrumentation/vertx-web-4.0/src/test/java/server/VertxTestServer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN;
1919
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.USER_BLOCK;
2020
import static datadog.trace.agent.test.utils.TraceUtils.runnableUnderTraceAsync;
21-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeScope;
2221
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
22+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled;
2323

2424
import datadog.appsec.api.blocking.Blocking;
2525
import datadog.trace.agent.test.base.HttpServerTest;
@@ -281,7 +281,7 @@ private static void exception() {
281281
private static void controller(
282282
RoutingContext ctx, final ServerEndpoint endpoint, final Runnable runnable) {
283283
assert activeSpan() != null : "Controller should have a parent span.";
284-
assert activeScope().isAsyncPropagating() : "Scope should be propagating async.";
284+
assert isAsyncPropagationEnabled() : "Span should be propagating async.";
285285
ctx.response()
286286
.putHeader(
287287
HttpServerTest.getIG_RESPONSE_HEADER(), HttpServerTest.getIG_RESPONSE_HEADER_VALUE());

0 commit comments

Comments
 (0)