Skip to content

Commit d58e8d7

Browse files
committed
adding logging
1 parent d6880f7 commit d58e8d7

2 files changed

Lines changed: 24 additions & 9 deletions

File tree

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,14 @@
3939
import net.bytebuddy.asm.Advice;
4040
import net.bytebuddy.description.type.TypeDescription;
4141
import net.bytebuddy.matcher.ElementMatcher;
42+
import org.slf4j.Logger;
43+
import org.slf4j.LoggerFactory;
4244

4345
public final class JMSMessageConsumerInstrumentation
4446
implements Instrumenter.ForTypeHierarchy, Instrumenter.HasMethodAdvice {
4547
private final String namespace;
48+
private static final Logger log =
49+
LoggerFactory.getLogger(JMSMessageConsumerInstrumentation.class);
4650

4751
public JMSMessageConsumerInstrumentation(String namespace) {
4852
this.namespace = namespace;
@@ -164,6 +168,7 @@ public static void afterReceive(
164168
CONSUMER_DECORATE.onError(span, throwable);
165169

166170
activateNext(span); // scope is left open until next message or it times out
171+
log.debug("Expecting the following `ITERATION` span to be finished {}", span);
167172

168173
SessionState sessionState = consumerState.getSessionState();
169174
if (sessionState.isClientAcknowledge()) {

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

Lines changed: 19 additions & 9 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;
@@ -238,15 +239,24 @@ public void closePrevious(final boolean finishSpan) {
238239

239240
// close any immediately previous iteration scope
240241
final ContinuableScope top = scopeStack.top;
241-
if (top != null && top.source() == ITERATION) {
242-
if (iterationKeepAlive > 0) { // skip depth check because cancelling is cheap
243-
cancelRootIterationScopeCleanup(scopeStack, top);
244-
}
245-
top.close();
246-
scopeStack.cleanup();
247-
AgentSpan span = top.span();
248-
if (finishSpan && span != null) {
249-
span.finishWithEndToEnd();
242+
if (top != null) {
243+
if (top.source() == ITERATION) {
244+
if (iterationKeepAlive > 0) { // skip depth check because cancelling is cheap
245+
cancelRootIterationScopeCleanup(scopeStack, top);
246+
}
247+
top.close();
248+
scopeStack.cleanup();
249+
AgentSpan span = top.span();
250+
if (finishSpan && span != null) {
251+
span.finishWithEndToEnd();
252+
}
253+
} else {
254+
log.debug(
255+
SEND_TELEMETRY,
256+
"Scope found at top of stack has source {} when we expect {}. Current span at the top of the stack {}.",
257+
top,
258+
ITERATION,
259+
top.span());
250260
}
251261
}
252262
}

0 commit comments

Comments
 (0)