Skip to content

Commit 2d7d791

Browse files
Migrate DSM injection calls to context-first APIs (#8383)
* feat(dsm): Implement DSM context injection * feat(dsm): Migrate DSM injection call to propagator * feat(dsm): Refactor DSM API into its own package * feat(dsm): Clean up API * chore(dsm): Update CODEOWNERS
1 parent 8316649 commit 2d7d791

File tree

118 files changed

+779
-868
lines changed

Some content is hidden

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

118 files changed

+779
-868
lines changed

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,10 @@ dd-java-agent/instrumentation/spring-security-5/ @DataDog/asm-java
6565
# @DataDog/data-jobs-monitoring
6666
dd-java-agent/instrumentation/spark/ @DataDog/data-jobs-monitoring
6767
dd-java-agent/instrumentation/spark-executor/ @DataDog/data-jobs-monitoring
68+
69+
# @DataDog/data-streams-monitoring
70+
dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/datastreams @DataDog/data-streams-monitoring
71+
dd-trace-core/src/main/java/datadog/trace/core/datastreams @DataDog/data-streams-monitoring
72+
dd-trace-core/src/test/groovy/datadog/trace/core/datastreams @DataDog/data-streams-monitoring
73+
internal-api/src/main/java/datadog/trace/api/datastreams @DataDog/data-streams-monitoring
74+
internal-api/src/test/groovy/datadog/trace/api/datastreams @DataDog/data-streams-monitoring

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java

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

33
import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS;
4+
import static datadog.trace.api.datastreams.DataStreamsContext.fromTags;
45
import static datadog.trace.api.gateway.Events.EVENTS;
56
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
67
import static datadog.trace.bootstrap.instrumentation.decorator.http.HttpResourceDecorator.HTTP_RESOURCE_DECORATOR;
@@ -148,7 +149,7 @@ public AgentSpan startSpan(
148149
}
149150
AgentPropagation.ContextVisitor<REQUEST_CARRIER> getter = getter();
150151
if (null != carrier && null != getter) {
151-
tracer().getDataStreamsMonitoring().setCheckpoint(span, SERVER_PATHWAY_EDGE_TAGS, 0, 0);
152+
tracer().getDataStreamsMonitoring().setCheckpoint(span, fromTags(SERVER_PATHWAY_EDGE_TAGS));
152153
}
153154
return span;
154155
}

dd-java-agent/agent-otel/otel-shim/src/main/java/datadog/opentelemetry/shim/trace/OtelExtractedContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import datadog.trace.api.DDSpanId;
44
import datadog.trace.api.DDTraceId;
5+
import datadog.trace.api.datastreams.PathwayContext;
56
import datadog.trace.api.sampling.PrioritySampling;
67
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
78
import datadog.trace.bootstrap.instrumentation.api.AgentTraceCollector;
89
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
9-
import datadog.trace.bootstrap.instrumentation.api.PathwayContext;
1010
import io.opentelemetry.api.trace.Span;
1111
import io.opentelemetry.api.trace.SpanContext;
1212
import io.opentelemetry.context.Context;

dd-java-agent/instrumentation/akka-http/akka-http-10.0/src/main/java/datadog/trace/instrumentation/akkahttp/AkkaHttpSingleRequestInstrumentation.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import static datadog.context.propagation.Propagators.defaultPropagator;
44
import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
55
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
6-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
76
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
7+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
88
import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientDecorator.AKKA_CLIENT_REQUEST;
99
import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientDecorator.DECORATE;
1010
import static datadog.trace.instrumentation.akkahttp.AkkaHttpClientHelpers.AkkaHttpHeaders;
@@ -17,9 +17,9 @@
1717
import com.google.auto.service.AutoService;
1818
import datadog.trace.agent.tooling.Instrumenter;
1919
import datadog.trace.agent.tooling.InstrumenterModule;
20+
import datadog.trace.api.datastreams.DataStreamsContext;
2021
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
2122
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
22-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
2323
import net.bytebuddy.asm.Advice;
2424
import scala.concurrent.Future;
2525

@@ -79,10 +79,8 @@ public static AgentScope methodEnter(
7979
DECORATE.onRequest(span, request);
8080

8181
if (request != null) {
82-
defaultPropagator().inject(span, request, headers);
83-
propagate()
84-
.injectPathwayContext(
85-
span, request, headers, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
82+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
83+
defaultPropagator().inject(span.with(dsmContext), request, headers);
8684
// Request is immutable, so we have to assign new value once we update headers
8785
request = headers.getRequest();
8886
}

dd-java-agent/instrumentation/akka-http/akka-http-10.6/src/main/java11/datadog/trace/instrumentation/akkahttp106/SingleRequestAdvice.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
5-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
65
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
6+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
77

88
import akka.http.scaladsl.HttpExt;
99
import akka.http.scaladsl.model.HttpRequest;
1010
import akka.http.scaladsl.model.HttpResponse;
11+
import datadog.trace.api.datastreams.DataStreamsContext;
1112
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
1213
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
13-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
1414
import net.bytebuddy.asm.Advice;
1515
import scala.concurrent.Future;
1616

@@ -29,10 +29,8 @@ public static AgentScope methodEnter(
2929
AkkaHttpClientDecorator.DECORATE.onRequest(span, request);
3030

3131
if (request != null) {
32-
defaultPropagator().inject(span, request, headers);
33-
propagate()
34-
.injectPathwayContext(
35-
span, request, headers, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
32+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
33+
defaultPropagator().inject(span.with(dsmContext), request, headers);
3634
// Request is immutable, so we have to assign new value once we update headers
3735
request = headers.getRequest();
3836
}

dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/DelegatingRequestProducer.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package datadog.trace.instrumentation.apachehttpasyncclient;
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
4-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
4+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
55
import static datadog.trace.instrumentation.apachehttpasyncclient.ApacheHttpAsyncClientDecorator.DECORATE;
66
import static datadog.trace.instrumentation.apachehttpasyncclient.HttpHeadersInjectAdapter.SETTER;
77

8+
import datadog.trace.api.datastreams.DataStreamsContext;
89
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
9-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
1010
import java.io.IOException;
1111
import org.apache.http.HttpException;
1212
import org.apache.http.HttpHost;
@@ -35,9 +35,8 @@ public HttpRequest generateRequest() throws IOException, HttpException {
3535
final HttpRequest request = delegate.generateRequest();
3636
DECORATE.onRequest(span, new HostAndRequestAsHttpUriRequest(delegate.getTarget(), request));
3737

38-
defaultPropagator().inject(span, request, SETTER);
39-
propagate()
40-
.injectPathwayContext(span, request, SETTER, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
38+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
39+
defaultPropagator().inject(span.with(dsmContext), request, SETTER);
4140

4241
return request;
4342
}

dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/HelperMethods.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
5-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
65
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
6+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
77
import static datadog.trace.instrumentation.apachehttpclient.ApacheHttpClientDecorator.DECORATE;
88
import static datadog.trace.instrumentation.apachehttpclient.ApacheHttpClientDecorator.HTTP_REQUEST;
99
import static datadog.trace.instrumentation.apachehttpclient.HttpHeadersInjectAdapter.SETTER;
1010

11+
import datadog.trace.api.datastreams.DataStreamsContext;
1112
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
1213
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
1314
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
14-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
1515
import org.apache.http.HttpHost;
1616
import org.apache.http.HttpRequest;
1717
import org.apache.http.HttpResponse;
@@ -46,10 +46,8 @@ private static AgentScope activateHttpSpan(final HttpUriRequest request) {
4646

4747
// AWS calls are often signed, so we can't add headers without breaking the signature.
4848
if (!awsClientCall) {
49-
defaultPropagator().inject(span, request, SETTER);
50-
propagate()
51-
.injectPathwayContext(
52-
span, request, SETTER, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
49+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
50+
defaultPropagator().inject(span.with(dsmContext), request, SETTER);
5351
}
5452

5553
return scope;

dd-java-agent/instrumentation/apache-httpclient-5/src/main/java/datadog/trace/instrumentation/apachehttpclient5/DelegatingRequestChannel.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package datadog.trace.instrumentation.apachehttpclient5;
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
4-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
4+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
55
import static datadog.trace.instrumentation.apachehttpclient5.ApacheHttpClientDecorator.DECORATE;
66
import static datadog.trace.instrumentation.apachehttpclient5.HttpHeadersInjectAdapter.SETTER;
77

8+
import datadog.trace.api.datastreams.DataStreamsContext;
89
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
9-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
1010
import java.io.IOException;
1111
import org.apache.hc.core5.http.EntityDetails;
1212
import org.apache.hc.core5.http.HttpException;
@@ -28,9 +28,8 @@ public void sendRequest(HttpRequest request, EntityDetails entityDetails, HttpCo
2828
throws HttpException, IOException {
2929
DECORATE.onRequest(span, request);
3030

31-
defaultPropagator().inject(span, request, SETTER);
32-
propagate()
33-
.injectPathwayContext(span, request, SETTER, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
31+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
32+
defaultPropagator().inject(span.with(dsmContext), request, SETTER);
3433
delegate.sendRequest(request, entityDetails, context);
3534
}
3635
}

dd-java-agent/instrumentation/apache-httpclient-5/src/main/java/datadog/trace/instrumentation/apachehttpclient5/HelperMethods.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
5-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
65
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
6+
import static datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
77
import static datadog.trace.instrumentation.apachehttpclient5.ApacheHttpClientDecorator.DECORATE;
88
import static datadog.trace.instrumentation.apachehttpclient5.ApacheHttpClientDecorator.HTTP_REQUEST;
99
import static datadog.trace.instrumentation.apachehttpclient5.HttpHeadersInjectAdapter.SETTER;
1010

11+
import datadog.trace.api.datastreams.DataStreamsContext;
1112
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
1213
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
1314
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
14-
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
1515
import org.apache.hc.client5.http.classic.HttpClient;
1616
import org.apache.hc.core5.http.HttpHost;
1717
import org.apache.hc.core5.http.HttpRequest;
@@ -46,10 +46,8 @@ private static AgentScope activateHttpSpan(final HttpRequest request) {
4646
final boolean awsClientCall = request.containsHeader("amz-sdk-invocation-id");
4747
// AWS calls are often signed, so we can't add headers without breaking the signature.
4848
if (!awsClientCall) {
49-
defaultPropagator().inject(span, request, SETTER);
50-
propagate()
51-
.injectPathwayContext(
52-
span, request, SETTER, HttpClientDecorator.CLIENT_PATHWAY_EDGE_TAGS);
49+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
50+
defaultPropagator().inject(span.with(dsmContext), request, SETTER);
5351
}
5452

5553
return scope;

dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/client/ClientCallImplInstrumentation.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
55
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
66
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
7-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
87
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
98
import static datadog.trace.instrumentation.armeria.grpc.client.GrpcClientDecorator.CLIENT_PATHWAY_EDGE_TAGS;
109
import static datadog.trace.instrumentation.armeria.grpc.client.GrpcClientDecorator.DECORATE;
@@ -21,6 +20,7 @@
2120
import datadog.trace.agent.tooling.InstrumenterModule;
2221
import datadog.trace.agent.tooling.muzzle.Reference;
2322
import datadog.trace.api.InstrumenterConfig;
23+
import datadog.trace.api.datastreams.DataStreamsContext;
2424
import datadog.trace.bootstrap.InstrumentationContext;
2525
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
2626
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
@@ -121,8 +121,8 @@ public static <T> AgentScope before(
121121
if (null != responseListener && null != headers) {
122122
span = InstrumentationContext.get(ClientCall.class, AgentSpan.class).get(call);
123123
if (null != span) {
124-
defaultPropagator().inject(span, headers, SETTER);
125-
propagate().injectPathwayContext(span, headers, SETTER, CLIENT_PATHWAY_EDGE_TAGS);
124+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(CLIENT_PATHWAY_EDGE_TAGS);
125+
defaultPropagator().inject(span.with(dsmContext), headers, SETTER);
126126
return activateSpan(span);
127127
}
128128
}

dd-java-agent/instrumentation/armeria-grpc/src/main/java/datadog/trace/instrumentation/armeria/grpc/server/TracingServerInterceptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.trace.instrumentation.armeria.grpc.server;
22

3+
import static datadog.trace.api.datastreams.DataStreamsContext.fromTags;
34
import static datadog.trace.api.gateway.Events.EVENTS;
45
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
56
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
@@ -71,7 +72,7 @@ public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(
7172

7273
AgentTracer.get()
7374
.getDataStreamsMonitoring()
74-
.setCheckpoint(span, SERVER_PATHWAY_EDGE_TAGS, 0, 0);
75+
.setCheckpoint(span, fromTags(SERVER_PATHWAY_EDGE_TAGS));
7576

7677
RequestContext reqContext = span.getRequestContext();
7778
if (reqContext != null) {

dd-java-agent/instrumentation/avro/src/main/java/datadog/trace/instrumentation/avro/SchemaExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package datadog.trace.instrumentation.avro;
22

33
import datadog.trace.api.DDTags;
4-
import datadog.trace.bootstrap.instrumentation.api.AgentDataStreamsMonitoring;
4+
import datadog.trace.api.datastreams.AgentDataStreamsMonitoring;
55
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
66
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
77
import datadog.trace.bootstrap.instrumentation.api.Schema;

dd-java-agent/instrumentation/aws-java-eventbridge-2.0/src/main/java/datadog/trace/instrumentation/aws/v2/eventbridge/EventBridgeInterceptor.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package datadog.trace.instrumentation.aws.v2.eventbridge;
22

33
import static datadog.context.propagation.Propagators.defaultPropagator;
4-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
54
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
65
import static datadog.trace.core.datastreams.TagsProcessor.BUS_TAG;
76
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_OUT;
87
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_TAG;
98
import static datadog.trace.core.datastreams.TagsProcessor.TYPE_TAG;
109
import static datadog.trace.instrumentation.aws.v2.eventbridge.TextMapInjectAdapter.SETTER;
1110

11+
import datadog.trace.api.datastreams.DataStreamsContext;
12+
import datadog.trace.api.datastreams.PathwayContext;
1213
import datadog.trace.bootstrap.InstanceStore;
1314
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
14-
import datadog.trace.bootstrap.instrumentation.api.PathwayContext;
1515
import java.util.ArrayList;
1616
import java.util.LinkedHashMap;
1717
import java.util.List;
@@ -86,12 +86,13 @@ private String getTraceContextToInject(
8686
StringBuilder jsonBuilder = new StringBuilder();
8787
jsonBuilder.append('{');
8888

89-
// Inject trace context
90-
defaultPropagator().inject(span, jsonBuilder, SETTER);
91-
89+
// Inject context
90+
datadog.context.Context context = span;
9291
if (traceConfig().isDataStreamsEnabled()) {
93-
propagate().injectPathwayContext(span, jsonBuilder, SETTER, getTags(eventBusName));
92+
DataStreamsContext dsmContext = DataStreamsContext.fromTags(getTags(eventBusName));
93+
context = context.with(dsmContext);
9494
}
95+
defaultPropagator().inject(context, jsonBuilder, SETTER);
9596

9697
// Add bus name and start time
9798
jsonBuilder

dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/AwsSdkClientDecorator.java

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

3+
import static datadog.trace.api.datastreams.DataStreamsContext.create;
34
import static datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities.RPC_COMMAND_NAME;
45
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_OUT;
56

@@ -264,7 +265,7 @@ public AgentSpan onServiceResponse(
264265

265266
AgentTracer.get()
266267
.getDataStreamsMonitoring()
267-
.setCheckpoint(span, sortedTags, 0, responseSize);
268+
.setCheckpoint(span, create(sortedTags, 0, responseSize));
268269
}
269270

270271
if ("PutObjectRequest".equalsIgnoreCase(awsOperation)
@@ -285,7 +286,7 @@ public AgentSpan onServiceResponse(
285286

286287
AgentTracer.get()
287288
.getDataStreamsMonitoring()
288-
.setCheckpoint(span, sortedTags, 0, payloadSize);
289+
.setCheckpoint(span, create(sortedTags, 0, payloadSize));
289290
}
290291
}
291292
}

dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/TracingRequestHandler.java

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

3+
import static datadog.trace.api.datastreams.DataStreamsContext.create;
34
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.XRAY_TRACING_CONCERN;
45
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
56
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.blackholeSpan;
@@ -18,11 +19,12 @@
1819
import com.amazonaws.handlers.RequestHandler2;
1920
import datadog.context.propagation.Propagators;
2021
import datadog.trace.api.Config;
22+
import datadog.trace.api.datastreams.AgentDataStreamsMonitoring;
23+
import datadog.trace.api.datastreams.DataStreamsContext;
24+
import datadog.trace.api.datastreams.PathwayContext;
2125
import datadog.trace.bootstrap.ContextStore;
22-
import datadog.trace.bootstrap.instrumentation.api.AgentDataStreamsMonitoring;
2326
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
2427
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
25-
import datadog.trace.bootstrap.instrumentation.api.PathwayContext;
2628
import java.util.Date;
2729
import java.util.LinkedHashMap;
2830
import java.util.List;
@@ -122,8 +124,8 @@ public void afterResponse(final Request<?> request, final Response<?> response)
122124
AgentDataStreamsMonitoring dataStreamsMonitoring =
123125
AgentTracer.get().getDataStreamsMonitoring();
124126
PathwayContext pathwayContext = dataStreamsMonitoring.newPathwayContext();
125-
pathwayContext.setCheckpoint(
126-
sortedTags, dataStreamsMonitoring::add, arrivalTime.getTime());
127+
DataStreamsContext context = create(sortedTags, arrivalTime.getTime(), 0);
128+
pathwayContext.setCheckpoint(context, dataStreamsMonitoring::add);
127129
if (!span.context().getPathwayContext().isStarted()) {
128130
span.context().mergePathwayContext(pathwayContext);
129131
}

0 commit comments

Comments
 (0)