Update jedis-1.4 to new agent api
package datadog.trace.instrumentation.jedis;
+import static datadog.trace.instrumentation.api.AgentTracer.activateSpan;
+import static datadog.trace.instrumentation.api.AgentTracer.startSpan;
import static datadog.trace.instrumentation.jedis.JedisClientDecorator.DECORATE;
import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
@@ -9,8 +11,8 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import com.google.auto.service.AutoService;
import datadog.trace.agent.tooling.Instrumenter;
-import io.opentracing.Scope;
-import io.opentracing.util.GlobalTracer;
+import datadog.trace.instrumentation.api.AgentScope;
+import datadog.trace.instrumentation.api.AgentSpan;
import java.util.Map;
import net.bytebuddy.asm.Advice;
import net.bytebuddy.description.method.MethodDescription;
@@ -57,16 +59,16 @@ public final class JedisInstrumentation extends Instrumenter.Default {
public static class JedisAdvice {
@Advice.OnMethodEnter(suppress = Throwable.class)
- public static Scope startSpan(@Advice.Argument(1) final Command command) {
- final Scope scope = GlobalTracer.get().buildSpan("redis.command").startActive(true);
- DECORATE.afterStart(scope.span());
- DECORATE.onStatement(scope.span(), command.name());
- return scope;
+ public static AgentScope onEnter(@Advice.Argument(1) final Command command) {
+ final AgentSpan span = startSpan("redis.command");
+ DECORATE.afterStart(span);
+ DECORATE.onStatement(span, command.name());
+ 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) {
+ @Advice.Enter final AgentScope scope, @Advice.Thrown final Throwable throwable) {
DECORATE.onError(scope.span(), throwable);
DECORATE.beforeFinish(scope.span());
scope.close();
