diff --git a/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentation.java b/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentation.java index cbe51c95ea26..af06e01f528e 100644 --- a/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentation.java +++ b/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentation.java @@ -39,14 +39,16 @@ public void transform(TypeTransformer transformer) { public static class ConstructorAdvice { @Advice.OnMethodEnter(suppress = Throwable.class) - public static void trackCallDepth(@Advice.Local("otelCallDepth") CallDepth callDepth) { - callDepth = CallDepth.forClass(Scheduler.class); + public static CallDepth trackCallDepth() { + CallDepth callDepth = CallDepth.forClass(Scheduler.class); callDepth.getAndIncrement(); + + return callDepth; } @Advice.OnMethodExit(suppress = Throwable.class) public static void addTracingInterceptor( - @Advice.This Scheduler scheduler, @Advice.Local("otelCallDepth") CallDepth callDepth) { + @Advice.This Scheduler scheduler, @Advice.Enter CallDepth callDepth) { // No-args constructor is automatically called by constructors with args, but we only want to // run once from the constructor with args because that is where the dedupe needs to happen. if (callDepth.decrementAndGet() > 0) { diff --git a/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentationModule.java b/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentationModule.java index ee72aa6b9407..3472e7764028 100644 --- a/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentationModule.java +++ b/instrumentation/quartz-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/quartz/v2_0/QuartzInstrumentationModule.java @@ -8,11 +8,13 @@ import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.Collections; import java.util.List; @AutoService(InstrumentationModule.class) -public class QuartzInstrumentationModule extends InstrumentationModule { +public class QuartzInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { public QuartzInstrumentationModule() { super("quartz", "quartz-2.0"); @@ -22,4 +24,9 @@ public QuartzInstrumentationModule() { public List typeInstrumentations() { return Collections.singletonList(new QuartzInstrumentation()); } + + @Override + public boolean isIndyReady() { + return true; + } }