Skip to content

Commit 418083b

Browse files
committed
feat(dsm): Migrate DSM injection call to propagator API 3/3
1 parent b971a9d commit 418083b

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import static datadog.context.propagation.Propagators.defaultPropagator;
44
import static datadog.trace.agent.tooling.bytebuddy.matcher.ClassLoaderMatchers.hasClassNamed;
55
import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named;
6+
import static datadog.trace.api.datastreams.DataStreamsContext.fromTagsWithoutCheckpoint;
7+
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.DSM_CONCERN;
68
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
79
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
8-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
910
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
1011
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_OUT;
1112
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_TAG;
@@ -24,9 +25,12 @@
2425
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
2526

2627
import com.google.auto.service.AutoService;
28+
import datadog.context.propagation.Propagator;
29+
import datadog.context.propagation.Propagators;
2730
import datadog.trace.agent.tooling.Instrumenter;
2831
import datadog.trace.agent.tooling.InstrumenterModule;
2932
import datadog.trace.api.Config;
33+
import datadog.trace.api.datastreams.DataStreamsContext;
3034
import datadog.trace.bootstrap.InstrumentationContext;
3135
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
3236
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
@@ -155,8 +159,9 @@ public static AgentScope onEnter(
155159
// inject the context in the headers, but delay sending the stats until we know the
156160
// message size.
157161
// The stats are saved in the pathway context and sent in PayloadSizeAdvice.
158-
propagate()
159-
.injectPathwayContextWithoutSendingStats(span, record.headers(), setter, sortedTags);
162+
Propagator dsmPropagator = Propagators.forConcern(DSM_CONCERN);
163+
DataStreamsContext dsmContext = fromTagsWithoutCheckpoint(sortedTags);
164+
dsmPropagator.inject(span.with(dsmContext), record.headers(), setter);
160165
AvroSchemaExtractor.tryExtractProducer(record, span);
161166
}
162167
} catch (final IllegalStateException e) {
@@ -173,8 +178,9 @@ record =
173178
defaultPropagator().inject(span, record.headers(), setter);
174179
if (STREAMING_CONTEXT.isDisabledForTopic(record.topic())
175180
|| STREAMING_CONTEXT.isSinkTopic(record.topic())) {
176-
propagate()
177-
.injectPathwayContextWithoutSendingStats(span, record.headers(), setter, sortedTags);
181+
Propagator dsmPropagator = Propagators.forConcern(DSM_CONCERN);
182+
DataStreamsContext dsmContext = fromTagsWithoutCheckpoint(sortedTags);
183+
dsmPropagator.inject(span.with(dsmContext), record.headers(), setter);
178184
AvroSchemaExtractor.tryExtractProducer(record, span);
179185
}
180186
}

dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/ProducerAdvice.java

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

33
import static datadog.context.propagation.Propagators.defaultPropagator;
4+
import static datadog.trace.api.datastreams.DataStreamsContext.fromTagsWithoutCheckpoint;
5+
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.DSM_CONCERN;
46
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
57
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
6-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.propagate;
78
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
89
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_OUT;
910
import static datadog.trace.core.datastreams.TagsProcessor.DIRECTION_TAG;
@@ -15,7 +16,10 @@
1516
import static datadog.trace.instrumentation.kafka_clients38.KafkaDecorator.TIME_IN_QUEUE_ENABLED;
1617
import static datadog.trace.instrumentation.kafka_common.StreamingContext.STREAMING_CONTEXT;
1718

19+
import datadog.context.propagation.Propagator;
20+
import datadog.context.propagation.Propagators;
1821
import datadog.trace.api.Config;
22+
import datadog.trace.api.datastreams.DataStreamsContext;
1923
import datadog.trace.bootstrap.InstrumentationContext;
2024
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
2125
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
@@ -79,8 +83,9 @@ public static AgentScope onEnter(
7983
// inject the context in the headers, but delay sending the stats until we know the
8084
// message size.
8185
// The stats are saved in the pathway context and sent in PayloadSizeAdvice.
82-
propagate()
83-
.injectPathwayContextWithoutSendingStats(span, record.headers(), setter, sortedTags);
86+
Propagator dsmPropagator = Propagators.forConcern(DSM_CONCERN);
87+
DataStreamsContext dsmContext = fromTagsWithoutCheckpoint(sortedTags);
88+
dsmPropagator.inject(span.with(dsmContext), record.headers(), setter);
8489
AvroSchemaExtractor.tryExtractProducer(record, span);
8590
}
8691
} catch (final IllegalStateException e) {
@@ -97,8 +102,9 @@ record =
97102
defaultPropagator().inject(span, record.headers(), setter);
98103
if (STREAMING_CONTEXT.isDisabledForTopic(record.topic())
99104
|| STREAMING_CONTEXT.isSinkTopic(record.topic())) {
100-
propagate()
101-
.injectPathwayContextWithoutSendingStats(span, record.headers(), setter, sortedTags);
105+
Propagator dsmPropagator = Propagators.forConcern(DSM_CONCERN);
106+
DataStreamsContext dsmContext = fromTagsWithoutCheckpoint(sortedTags);
107+
dsmPropagator.inject(span.with(dsmContext), record.headers(), setter);
102108
AvroSchemaExtractor.tryExtractProducer(record, span);
103109
}
104110
}

0 commit comments

Comments
 (0)