From 4ca63b74403ddd15a6228a1afba64b59db336651 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Sat, 19 Oct 2019 11:57:40 -0700 Subject: [PATCH] Update dropwizard to new agent api --- .../view/DropwizardViewInstrumentation.java | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java index 8c72511ce8..c3f6b6a41d 100644 --- a/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java +++ b/dd-java-agent/instrumentation/dropwizard/dropwizard-views/src/main/java/datadog/trace/instrumentation/dropwizard/view/DropwizardViewInstrumentation.java @@ -1,7 +1,8 @@ package datadog.trace.instrumentation.dropwizard.view; import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; -import static io.opentracing.log.Fields.ERROR_OBJECT; +import static datadog.trace.instrumentation.api.AgentTracer.activateSpan; +import static datadog.trace.instrumentation.api.AgentTracer.startSpan; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isInterface; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -13,12 +14,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.api.DDTags; +import datadog.trace.instrumentation.api.AgentScope; +import datadog.trace.instrumentation.api.AgentSpan; import io.dropwizard.views.View; -import io.opentracing.Scope; -import io.opentracing.Span; import io.opentracing.tag.Tags; -import io.opentracing.util.GlobalTracer; -import java.util.Collections; import java.util.Map; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.method.MethodDescription; @@ -50,28 +49,24 @@ public final class DropwizardViewInstrumentation extends Instrumenter.Default { public static class RenderAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) - public static Scope startSpan( + public static AgentScope onEnter( @Advice.This final Object obj, @Advice.Argument(0) final View view) { - final Scope scope = - GlobalTracer.get() - .buildSpan("view.render") - .withTag(DDTags.RESOURCE_NAME, "View " + view.getTemplateName()) - .withTag(Tags.COMPONENT.getKey(), "dropwizard-view") - .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER) - .withTag("span.origin.type", obj.getClass().getSimpleName()) - .startActive(true); - - return scope; + final AgentSpan span = + startSpan("view.render") + .setTag(DDTags.RESOURCE_NAME, "View " + view.getTemplateName()) + .setTag(Tags.COMPONENT.getKey(), "dropwizard-view") + .setTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER) + .setTag("span.origin.type", obj.getClass().getSimpleName()); + return activateSpan(span, true); } @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void stopSpan( - @Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) { - - final Span span = scope.span(); + @Advice.Enter final AgentScope scope, @Advice.Thrown final Throwable throwable) { + final AgentSpan span = scope.span(); if (throwable != null) { - Tags.ERROR.set(span, Boolean.TRUE); - span.log(Collections.singletonMap(ERROR_OBJECT, throwable)); + span.setError(true); + span.addThrowable(throwable); } scope.close(); }