Skip to content

Commit edd1220

Browse files
committed
feat(core): Remove core propagation injection API
1 parent f2410eb commit edd1220

File tree

6 files changed

+192
-285
lines changed

6 files changed

+192
-285
lines changed

dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java

+1-8
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import datadog.trace.api.InstrumenterConfig;
3333
import datadog.trace.api.StatsDClient;
3434
import datadog.trace.api.TraceConfig;
35-
import datadog.trace.api.TracePropagationStyle;
3635
import datadog.trace.api.config.GeneralConfig;
3736
import datadog.trace.api.experimental.DataStreamsCheckpointer;
3837
import datadog.trace.api.flare.TracerFlare;
@@ -78,7 +77,6 @@
7877
import datadog.trace.common.writer.WriterFactory;
7978
import datadog.trace.common.writer.ddintake.DDIntakeTraceInterceptor;
8079
import datadog.trace.context.TraceScope;
81-
import datadog.trace.core.datastreams.DataStreamContextInjector;
8280
import datadog.trace.core.datastreams.DataStreamsMonitoring;
8381
import datadog.trace.core.datastreams.DefaultDataStreamsMonitoring;
8482
import datadog.trace.core.flare.TracerFlarePoller;
@@ -718,13 +716,8 @@ private CoreTracer(
718716
HttpCodec.Extractor builtExtractor =
719717
extractor == null ? HttpCodec.createExtractor(config, this::captureTraceConfig) : extractor;
720718
builtExtractor = this.dataStreamsMonitoring.extractor(builtExtractor);
721-
// Create all HTTP injectors plus the DSM one
722-
Map<TracePropagationStyle, HttpCodec.Injector> injectors =
723-
HttpCodec.allInjectorsFor(config, invertMap(baggageMapping));
724-
DataStreamContextInjector dataStreamContextInjector = this.dataStreamsMonitoring.injector();
725719
// Store all propagators to propagation
726-
this.propagation =
727-
new CorePropagation(builtExtractor, injector, injectors, dataStreamContextInjector);
720+
this.propagation = new CorePropagation(builtExtractor, this.dataStreamsMonitoring.injector());
728721

729722
boolean appSec = config.isAppSecStandaloneEnabled();
730723
Propagators.register(STANDALONE_ASM_CONCERN, new StandaloneAsmPropagator(), appSec);

dd-trace-core/src/main/java/datadog/trace/core/propagation/CorePropagation.java

+1-54
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,28 @@
11
package datadog.trace.core.propagation;
22

3-
import datadog.trace.api.Config;
4-
import datadog.trace.api.TracePropagationStyle;
53
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
64
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
75
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
8-
import datadog.trace.core.DDSpanContext;
96
import datadog.trace.core.datastreams.DataStreamContextInjector;
107
import java.util.LinkedHashMap;
11-
import java.util.Map;
128

139
public class CorePropagation implements AgentPropagation {
14-
private final HttpCodec.Injector injector;
15-
private final Map<TracePropagationStyle, HttpCodec.Injector> injectors;
1610
private final DataStreamContextInjector dataStreamContextInjector;
1711
private final HttpCodec.Extractor extractor;
1812

1913
/**
2014
* Constructor
2115
*
2216
* @param extractor The context extractor.
23-
* @param defaultInjector The default injector when no {@link TracePropagationStyle} given.
24-
* @param injectors All the other injectors available for context injection.
2517
* @param dataStreamContextInjector The DSM context injector, as a specific object until generic
2618
* context injection is available.
2719
*/
2820
public CorePropagation(
29-
HttpCodec.Extractor extractor,
30-
HttpCodec.Injector defaultInjector,
31-
Map<TracePropagationStyle, HttpCodec.Injector> injectors,
32-
DataStreamContextInjector dataStreamContextInjector) {
21+
HttpCodec.Extractor extractor, DataStreamContextInjector dataStreamContextInjector) {
3322
this.extractor = extractor;
34-
this.injector = defaultInjector;
35-
this.injectors = injectors;
3623
this.dataStreamContextInjector = dataStreamContextInjector;
3724
}
3825

39-
@Override
40-
public <C> void inject(final AgentSpan span, final C carrier, final Setter<C> setter) {
41-
inject(span.context(), carrier, setter, null);
42-
}
43-
44-
@Override
45-
public <C> void inject(AgentSpanContext context, C carrier, Setter<C> setter) {
46-
inject(context, carrier, setter, null);
47-
}
48-
49-
@Override
50-
public <C> void inject(AgentSpan span, C carrier, Setter<C> setter, TracePropagationStyle style) {
51-
inject(span.context(), carrier, setter, style);
52-
}
53-
54-
private <C> void inject(
55-
AgentSpanContext context, C carrier, Setter<C> setter, TracePropagationStyle style) {
56-
if (!(context instanceof DDSpanContext)) {
57-
return;
58-
}
59-
60-
final DDSpanContext ddSpanContext = (DDSpanContext) context;
61-
ddSpanContext.getTraceCollector().setSamplingPriorityIfNecessary();
62-
63-
/**
64-
* If the experimental appsec standalone feature is enabled and appsec propagation is disabled
65-
* (no ASM events), stop propagation
66-
*/
67-
if (Config.get().isAppSecStandaloneEnabled()
68-
&& !ddSpanContext.getPropagationTags().isAppsecPropagationEnabled()) {
69-
return;
70-
}
71-
72-
if (null == style) {
73-
injector.inject(ddSpanContext, carrier, setter);
74-
} else {
75-
injectors.get(style).inject(ddSpanContext, carrier, setter);
76-
}
77-
}
78-
7926
@Override
8027
public <C> void injectPathwayContext(
8128
AgentSpan span, C carrier, Setter<C> setter, LinkedHashMap<String, String> sortedTags) {

dd-trace-core/src/test/groovy/datadog/trace/core/CoreTracerTest.groovy

-5
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ import datadog.trace.common.sampling.Sampler
1919
import datadog.trace.common.writer.DDAgentWriter
2020
import datadog.trace.common.writer.ListWriter
2121
import datadog.trace.common.writer.LoggingWriter
22-
import datadog.trace.core.datastreams.DataStreamContextExtractor
23-
import datadog.trace.core.propagation.HttpCodec
2422
import datadog.trace.core.tagprocessor.TagsPostProcessorFactory
2523
import datadog.trace.core.test.DDCoreSpecification
2624
import okhttp3.HttpUrl
@@ -55,9 +53,6 @@ class CoreTracerTest extends DDCoreSpecification {
5553
tracer.writer instanceof DDAgentWriter
5654
tracer.statsDClient != null && tracer.statsDClient != StatsDClient.NO_OP
5755

58-
tracer.propagate().injector instanceof HttpCodec.CompoundInjector
59-
tracer.propagate().extractor instanceof DataStreamContextExtractor
60-
6156
cleanup:
6257
tracer.close()
6358
}

0 commit comments

Comments
 (0)