Skip to content

Commit 5f1247d

Browse files
committed
feat(dsm): Clean up context injection
1 parent b8f9cd9 commit 5f1247d

File tree

5 files changed

+22
-18
lines changed

5 files changed

+22
-18
lines changed

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

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +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;
4+
import static datadog.trace.api.datastreams.DataStreamsContext.forHttpServer;
55
import static datadog.trace.api.gateway.Events.EVENTS;
66
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.extractContextAndGetSpanContext;
77
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
@@ -35,7 +35,6 @@
3535
import datadog.trace.bootstrap.instrumentation.decorator.http.ClientIpAddressResolver;
3636
import java.net.InetAddress;
3737
import java.util.BitSet;
38-
import java.util.LinkedHashMap;
3938
import java.util.Locale;
4039
import java.util.Map;
4140
import java.util.concurrent.ExecutionException;
@@ -59,15 +58,6 @@ public abstract class HttpServerDecorator<REQUEST, CONNECTION, RESPONSE, REQUEST
5958
public static final String DD_RESPONSE_ATTRIBUTE = "datadog.response";
6059
public static final String DD_IGNORE_COMMIT_ATTRIBUTE = "datadog.commit.ignore";
6160

62-
public static final LinkedHashMap<String, String> SERVER_PATHWAY_EDGE_TAGS;
63-
64-
static {
65-
SERVER_PATHWAY_EDGE_TAGS = new LinkedHashMap<>(2);
66-
// TODO: Refactor TagsProcessor to move it into a package that we can link the constants for.
67-
SERVER_PATHWAY_EDGE_TAGS.put("direction", "in");
68-
SERVER_PATHWAY_EDGE_TAGS.put("type", "http");
69-
}
70-
7161
private static final UTF8BytesString DEFAULT_RESOURCE_NAME = UTF8BytesString.create("/");
7262
protected static final UTF8BytesString NOT_FOUND_RESOURCE_NAME = UTF8BytesString.create("404");
7363
private static final boolean SHOULD_SET_404_RESOURCE_NAME =
@@ -150,7 +140,7 @@ public AgentSpan startSpan(
150140
}
151141
AgentPropagation.ContextVisitor<REQUEST_CARRIER> getter = getter();
152142
if (null != carrier && null != getter) {
153-
tracer().getDataStreamsMonitoring().setCheckpoint(span, fromTags(SERVER_PATHWAY_EDGE_TAGS));
143+
tracer().getDataStreamsMonitoring().setCheckpoint(span, forHttpServer());
154144
}
155145
return span;
156146
}

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ abstract class HttpClientTest extends VersionedNamingTestBase {
3636
protected static final int READ_TIMEOUT_MS = TimeUnit.SECONDS.toMillis(5) as int
3737
protected static final BASIC_AUTH_KEY = "custom_authorization_header"
3838
protected static final BASIC_AUTH_VAL = "plain text auth token"
39-
protected static final DSM_EDGE_TAGS = DataStreamsContext.client().sortedTags().collect { key, value ->
39+
protected static final DSM_EDGE_TAGS = DataStreamsContext.forHttpClient().sortedTags().collect { key, value ->
4040
return key + ":" + value
4141
}
4242

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import datadog.trace.api.DDTags
1414
import datadog.trace.api.ProductActivation
1515
import datadog.trace.api.config.GeneralConfig
1616
import datadog.trace.api.config.TracerConfig
17+
import datadog.trace.api.datastreams.DataStreamsContext
1718
import datadog.trace.api.env.CapturedEnvironment
1819
import datadog.trace.api.function.TriConsumer
1920
import datadog.trace.api.function.TriFunction
@@ -98,14 +99,13 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan
9899
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.get
99100
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled
100101
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan
101-
import static datadog.trace.bootstrap.instrumentation.decorator.HttpServerDecorator.SERVER_PATHWAY_EDGE_TAGS
102102
import static java.nio.charset.StandardCharsets.UTF_8
103103
import static org.junit.Assume.assumeTrue
104104

105105
abstract class HttpServerTest<SERVER> extends WithHttpServer<SERVER> {
106106

107107
public static final Logger SERVER_LOGGER = LoggerFactory.getLogger("http-server")
108-
protected static final DSM_EDGE_TAGS = SERVER_PATHWAY_EDGE_TAGS.collect {
108+
protected static final DSM_EDGE_TAGS = DataStreamsContext.forHttpServer().sortedTags().collect {
109109
key, value ->
110110
return key + ":" + value
111111
}

dd-trace-core/src/main/java/datadog/trace/core/datastreams/DataStreamsPropagator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ private static DataStreamsContext createDataStreamsContext(AgentSpan span) {
104104
&& span.getTag(COMPONENT) instanceof CharSequence
105105
&& "java-web-servlet-dispatcher"
106106
.equals(((CharSequence) span.getTag(COMPONENT)).toString())) {
107-
return DataStreamsContext.client();
107+
return DataStreamsContext.forHttpClient();
108108
}
109109
return null;
110110
}

internal-api/src/main/java/datadog/trace/api/datastreams/DataStreamsContext.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class DataStreamsContext implements ImplicitContextKeyed {
99
private static final ContextKey<DataStreamsContext> CONTEXT_KEY =
1010
ContextKey.named("dsm-context-key");
1111
private static final LinkedHashMap<String, String> CLIENT_PATHWAY_EDGE_TAGS;
12+
private static final LinkedHashMap<String, String> SERVER_PATHWAY_EDGE_TAGS;
1213

1314
final LinkedHashMap<String, String> sortedTags;
1415
final long defaultTimestamp;
@@ -20,21 +21,34 @@ public class DataStreamsContext implements ImplicitContextKeyed {
2021
// TODO: Refactor TagsProcessor to move it into a package that we can link the constants for.
2122
CLIENT_PATHWAY_EDGE_TAGS.put("direction", "out");
2223
CLIENT_PATHWAY_EDGE_TAGS.put("type", "http");
24+
SERVER_PATHWAY_EDGE_TAGS = new LinkedHashMap<>(2);
25+
// TODO: Refactor TagsProcessor to move it into a package that we can link the constants for.
26+
SERVER_PATHWAY_EDGE_TAGS.put("direction", "in");
27+
SERVER_PATHWAY_EDGE_TAGS.put("type", "http");
2328
}
2429

2530
public static DataStreamsContext fromContext(Context context) {
2631
return context.get(CONTEXT_KEY);
2732
}
2833

2934
/**
30-
* Return default DSM context for HTTP clients.
35+
* Gets default DSM context for HTTP clients.
3136
*
3237
* @return The default DSM context for HTTP clients.
3338
*/
34-
public static DataStreamsContext client() {
39+
public static DataStreamsContext forHttpClient() {
3540
return fromTags(CLIENT_PATHWAY_EDGE_TAGS);
3641
}
3742

43+
/**
44+
* Gets default DSM context for HTTP servers.
45+
*
46+
* @return The default DSM context for HTTP servers.
47+
*/
48+
public static DataStreamsContext forHttpServer() {
49+
return fromTags(SERVER_PATHWAY_EDGE_TAGS);
50+
}
51+
3852
/**
3953
* Creates a DSM context.
4054
*

0 commit comments

Comments
 (0)