Use scope when opening JMS span

This commit is contained in:
Nikolay Martynov 2019-04-04 15:58:21 -04:00
parent 4119059e70
commit e678a62e5b
1 changed files with 10 additions and 8 deletions

View File

@ -10,6 +10,7 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import com.google.auto.service.AutoService; import com.google.auto.service.AutoService;
import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.agent.tooling.Instrumenter;
import io.opentracing.Scope;
import io.opentracing.Span; import io.opentracing.Span;
import io.opentracing.SpanContext; import io.opentracing.SpanContext;
import io.opentracing.Tracer; import io.opentracing.Tracer;
@ -92,15 +93,16 @@ public final class JMSMessageConsumerInstrumentation extends Instrumenter.Defaul
} }
final Span span = spanBuilder.start(); final Span span = spanBuilder.start();
CONSUMER_DECORATE.afterStart(span); try (final Scope scope = GlobalTracer.get().scopeManager().activate(span, true)) {
if (message == null) { CONSUMER_DECORATE.afterStart(span);
CONSUMER_DECORATE.onReceive(span, method); if (message == null) {
} else { CONSUMER_DECORATE.onReceive(span, method);
CONSUMER_DECORATE.onConsume(span, message); } else {
CONSUMER_DECORATE.onConsume(span, message);
}
CONSUMER_DECORATE.onError(span, throwable);
CONSUMER_DECORATE.beforeFinish(span);
} }
CONSUMER_DECORATE.onError(span, throwable);
CONSUMER_DECORATE.beforeFinish(span);
span.finish();
} }
} }
} }