Jaxrs: use scope when span is opened

This commit is contained in:
Nikolay Martynov 2019-04-04 15:54:21 -04:00
parent 0e7418fde6
commit 4119059e70
1 changed files with 12 additions and 10 deletions

View File

@ -3,6 +3,7 @@ package datadog.trace.instrumentation.jaxrs;
import static datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator.DECORATE; import static datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator.DECORATE;
import datadog.trace.api.DDTags; import datadog.trace.api.DDTags;
import io.opentracing.Scope;
import io.opentracing.Span; import io.opentracing.Span;
import io.opentracing.propagation.Format; import io.opentracing.propagation.Format;
import io.opentracing.util.GlobalTracer; import io.opentracing.util.GlobalTracer;
@ -21,12 +22,12 @@ public class ClientTracingFilter implements ClientRequestFilter, ClientResponseF
@Override @Override
public void filter(final ClientRequestContext requestContext) { public void filter(final ClientRequestContext requestContext) {
final Span span = final Span span =
GlobalTracer.get() GlobalTracer.get()
.buildSpan("jax-rs.client.call") .buildSpan("jax-rs.client.call")
.withTag(DDTags.RESOURCE_NAME, requestContext.getMethod() + " jax-rs.client.call") .withTag(DDTags.RESOURCE_NAME, requestContext.getMethod() + " jax-rs.client.call")
.start(); .start();
try (final Scope scope = GlobalTracer.get().scopeManager().activate(span, false)) {
DECORATE.afterStart(span); DECORATE.afterStart(span);
DECORATE.onRequest(span, requestContext); DECORATE.onRequest(span, requestContext);
@ -40,6 +41,7 @@ public class ClientTracingFilter implements ClientRequestFilter, ClientResponseF
requestContext.setProperty(SPAN_PROPERTY_NAME, span); requestContext.setProperty(SPAN_PROPERTY_NAME, span);
} }
}
@Override @Override
public void filter( public void filter(