Skip to content

Commit 5c6554f

Browse files
authored
Adding Logging for JMS ITERATION Scope (#10632)
adding logging adding wrapper to avoid bytebuddy issues PR comments Merge branch 'master' into mhlidd/add_jms_logging Merge branch 'master' into mhlidd/add_jms_logging adding log helper to helper class names moving logger out of nested class Co-authored-by: matthew.li <matthew.li@datadoghq.com>
1 parent 442767f commit 5c6554f

4 files changed

Lines changed: 24 additions & 1 deletion

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package datadog.trace.instrumentation.jms;
2+
3+
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
7+
public class JMSLogger {
8+
private static final Logger log = LoggerFactory.getLogger(JMSLogger.class);
9+
10+
public static void logIterationSpan(AgentSpan span) {
11+
log.debug("Expecting the following `ITERATION` span to be finished {}", span);
12+
}
13+
}

dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JMSMessageConsumerInstrumentation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ public static void afterReceive(
164164
CONSUMER_DECORATE.onError(span, throwable);
165165

166166
activateNext(span); // scope is left open until next message or it times out
167+
JMSLogger.logIterationSpan(span);
167168

168169
SessionState sessionState = consumerState.getSessionState();
169170
if (sessionState.isClientAcknowledge()) {

dd-java-agent/instrumentation/jms/javax-jms-1.1/src/main/java/datadog/trace/instrumentation/jms/JavaxJmsModule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public String[] helperClassNames() {
3636
packageName + ".MessageExtractAdapter",
3737
packageName + ".MessageExtractAdapter$1",
3838
packageName + ".MessageInjectAdapter",
39-
packageName + ".DatadogMessageListener"
39+
packageName + ".DatadogMessageListener",
40+
packageName + ".JMSLogger"
4041
};
4142
}
4243

dd-trace-core/src/main/java/datadog/trace/core/scopemanager/ContinuableScopeManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package datadog.trace.core.scopemanager;
22

33
import static datadog.trace.api.ConfigDefaults.DEFAULT_ASYNC_PROPAGATING;
4+
import static datadog.trace.api.telemetry.LogCollector.SEND_TELEMETRY;
45
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopScope;
56
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan;
67
import static datadog.trace.core.scopemanager.ContinuableScope.CONTEXT;
@@ -248,6 +249,13 @@ public void closePrevious(final boolean finishSpan) {
248249
if (finishSpan && span != null) {
249250
span.finishWithEndToEnd();
250251
}
252+
} else if (top != null) {
253+
log.debug(
254+
SEND_TELEMETRY,
255+
"Scope found at top of stack has source {} when we expect {}. Current span at the top of the stack {}.",
256+
top.source(),
257+
ITERATION,
258+
top.span());
251259
}
252260
}
253261

0 commit comments

Comments
 (0)