Skip to content

Commit 97e7d2f

Browse files
Added WebSocket tracing check
1 parent bc4b6f0 commit 97e7d2f

File tree

3 files changed

+60
-47
lines changed

3 files changed

+60
-47
lines changed

dd-java-agent/instrumentation/netty-3.8/src/main/java/datadog/trace/instrumentation/netty38/ChannelPipelineAdviceUtil.java

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

3+
import datadog.trace.api.InstrumenterConfig;
34
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
45
import datadog.trace.bootstrap.ContextStore;
56
import datadog.trace.instrumentation.netty38.client.HttpClientRequestTracingHandler;
@@ -53,25 +54,31 @@ public static void wrapHandler(
5354
pipeline.addLast(
5455
MaybeBlockResponseHandler.class.getName(), new MaybeBlockResponseHandler(contextStore));
5556
} else if (handler instanceof WebSocketServerProtocolHandler) {
56-
if (pipeline.get(HttpServerTracingHandler.class) != null) {
57-
addHandlerAfter(
58-
pipeline,
59-
"datadog.trace.instrumentation.netty38.server.HttpServerTracingHandler",
60-
new WebSocketServerTracingHandler(contextStore));
57+
if (InstrumenterConfig.get().isWebsocketTracingEnabled()) {
58+
if (pipeline.get(HttpServerTracingHandler.class) != null) {
59+
addHandlerAfter(
60+
pipeline,
61+
"datadog.trace.instrumentation.netty38.server.HttpServerTracingHandler",
62+
new WebSocketServerTracingHandler(contextStore));
63+
}
6164
}
6265
} else if (handler instanceof WebSocket13FrameEncoder) {
63-
if (pipeline.get(HttpServerRequestTracingHandler.class) != null) {
64-
addHandlerAfter(
65-
pipeline,
66-
"datadog.trace.instrumentation.netty38.server.HttpServerRequestTracingHandler",
67-
new WebSocketServerRequestTracingHandler(contextStore));
66+
if (InstrumenterConfig.get().isWebsocketTracingEnabled()) {
67+
if (pipeline.get(HttpServerRequestTracingHandler.class) != null) {
68+
addHandlerAfter(
69+
pipeline,
70+
"datadog.trace.instrumentation.netty38.server.HttpServerRequestTracingHandler",
71+
new WebSocketServerRequestTracingHandler(contextStore));
72+
}
6873
}
6974
} else if (handler instanceof WebSocket13FrameDecoder) {
70-
if (pipeline.get(HttpServerResponseTracingHandler.class) != null) {
71-
addHandlerAfter(
72-
pipeline,
73-
"datadog.trace.instrumentation.netty38.server.HttpServerResponseTracingHandler",
74-
new WebSocketServerResponseTracingHandler(contextStore));
75+
if (InstrumenterConfig.get().isWebsocketTracingEnabled()) {
76+
if (pipeline.get(HttpServerResponseTracingHandler.class) != null) {
77+
addHandlerAfter(
78+
pipeline,
79+
"datadog.trace.instrumentation.netty38.server.HttpServerResponseTracingHandler",
80+
new WebSocketServerResponseTracingHandler(contextStore));
81+
}
7582
}
7683
} else
7784
// Client pipeline handlers

dd-java-agent/instrumentation/netty-4.0/src/main/java/datadog/trace/instrumentation/netty40/NettyChannelPipelineInstrumentation.java

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.google.auto.service.AutoService;
1414
import datadog.trace.agent.tooling.Instrumenter;
1515
import datadog.trace.agent.tooling.InstrumenterModule;
16+
import datadog.trace.api.InstrumenterConfig;
1617
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
1718
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
1819
import datadog.trace.instrumentation.netty40.client.HttpClientRequestTracingHandler;
@@ -160,23 +161,25 @@ public static void addHandler(
160161
HttpServerResponseTracingHandler.INSTANCE,
161162
MaybeBlockResponseHandler.INSTANCE);
162163
} else if (handler instanceof WebSocketServerProtocolHandler) {
163-
if (pipeline.get(HttpServerTracingHandler.class) != null) {
164-
NettyPipelineHelper.addHandlerAfter(
165-
pipeline,
166-
"datadog.trace.instrumentation.netty40.server.HttpServerTracingHandler",
167-
new WebSocketServerTracingHandler());
168-
}
169-
if (pipeline.get(HttpRequestDecoder.class) != null) {
170-
NettyPipelineHelper.addHandlerAfter(
171-
pipeline,
172-
"datadog.trace.instrumentation.netty40.server.HttpServerRequestTracingHandler",
173-
WebSocketServerRequestTracingHandler.INSTANCE);
174-
}
175-
if (pipeline.get(HttpResponseEncoder.class) != null) {
176-
NettyPipelineHelper.addHandlerAfter(
177-
pipeline,
178-
"datadog.trace.instrumentation.netty40.server.HttpServerResponseTracingHandler",
179-
WebSocketServerResponseTracingHandler.INSTANCE);
164+
if (InstrumenterConfig.get().isWebsocketTracingEnabled()) {
165+
if (pipeline.get(HttpServerTracingHandler.class) != null) {
166+
NettyPipelineHelper.addHandlerAfter(
167+
pipeline,
168+
"datadog.trace.instrumentation.netty40.server.HttpServerTracingHandler",
169+
new WebSocketServerTracingHandler());
170+
}
171+
if (pipeline.get(HttpRequestDecoder.class) != null) {
172+
NettyPipelineHelper.addHandlerAfter(
173+
pipeline,
174+
"datadog.trace.instrumentation.netty40.server.HttpServerRequestTracingHandler",
175+
WebSocketServerRequestTracingHandler.INSTANCE);
176+
}
177+
if (pipeline.get(HttpResponseEncoder.class) != null) {
178+
NettyPipelineHelper.addHandlerAfter(
179+
pipeline,
180+
"datadog.trace.instrumentation.netty40.server.HttpServerResponseTracingHandler",
181+
WebSocketServerResponseTracingHandler.INSTANCE);
182+
}
180183
}
181184
} else
182185
// Client pipeline handlers

dd-java-agent/instrumentation/netty-4.1/src/main/java/datadog/trace/instrumentation/netty41/NettyChannelPipelineInstrumentation.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.google.auto.service.AutoService;
1414
import datadog.trace.agent.tooling.Instrumenter;
1515
import datadog.trace.agent.tooling.InstrumenterModule;
16+
import datadog.trace.api.InstrumenterConfig;
1617
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
1718
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
1819
import datadog.trace.instrumentation.netty41.client.HttpClientRequestTracingHandler;
@@ -161,21 +162,23 @@ public static void addHandler(
161162
HttpServerResponseTracingHandler.INSTANCE,
162163
MaybeBlockResponseHandler.INSTANCE);
163164
} else if (handler instanceof WebSocketServerProtocolHandler) {
164-
if (pipeline.get(HttpServerTracingHandler.class) != null) {
165-
NettyPipelineHelper.addHandlerAfter(
166-
pipeline, "HttpServerTracingHandler#0", new WebSocketServerTracingHandler());
167-
}
168-
if (pipeline.get(HttpServerRequestTracingHandler.class) != null) {
169-
NettyPipelineHelper.addHandlerAfter(
170-
pipeline,
171-
"HttpServerRequestTracingHandler#0",
172-
WebSocketServerRequestTracingHandler.INSTANCE);
173-
}
174-
if (pipeline.get(HttpServerResponseTracingHandler.class) != null) {
175-
NettyPipelineHelper.addHandlerAfter(
176-
pipeline,
177-
"HttpServerResponseTracingHandler#0",
178-
WebSocketServerResponseTracingHandler.INSTANCE);
165+
if (InstrumenterConfig.get().isWebsocketTracingEnabled()) {
166+
if (pipeline.get(HttpServerTracingHandler.class) != null) {
167+
NettyPipelineHelper.addHandlerAfter(
168+
pipeline, "HttpServerTracingHandler#0", new WebSocketServerTracingHandler());
169+
}
170+
if (pipeline.get(HttpServerRequestTracingHandler.class) != null) {
171+
NettyPipelineHelper.addHandlerAfter(
172+
pipeline,
173+
"HttpServerRequestTracingHandler#0",
174+
WebSocketServerRequestTracingHandler.INSTANCE);
175+
}
176+
if (pipeline.get(HttpServerResponseTracingHandler.class) != null) {
177+
NettyPipelineHelper.addHandlerAfter(
178+
pipeline,
179+
"HttpServerResponseTracingHandler#0",
180+
WebSocketServerResponseTracingHandler.INSTANCE);
181+
}
179182
}
180183
}
181184
// Client pipeline handlers

0 commit comments

Comments
 (0)