From c33337554a06c975759a1bf613f63933d1c65a17 Mon Sep 17 00:00:00 2001 From: Sylvain Juge <763082+SylvainJuge@users.noreply.github.com> Date: Tue, 21 Oct 2025 10:43:58 +0200 Subject: [PATCH] make hikaricp indy-ready --- .../hikaricp/v3_0/HikariCpInstrumentationModule.java | 9 ++++++++- .../hikaricp/v3_0/HikariPoolInstrumentation.java | 9 ++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariCpInstrumentationModule.java b/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariCpInstrumentationModule.java index 4c7680d3f166..99f69a11962d 100644 --- a/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariCpInstrumentationModule.java +++ b/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariCpInstrumentationModule.java @@ -10,10 +10,12 @@ 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.List; @AutoService(InstrumentationModule.class) -public class HikariCpInstrumentationModule extends InstrumentationModule { +public class HikariCpInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { public HikariCpInstrumentationModule() { super("hikaricp", "hikaricp-3.0"); @@ -23,4 +25,9 @@ public HikariCpInstrumentationModule() { public List typeInstrumentations() { return singletonList(new HikariPoolInstrumentation()); } + + @Override + public boolean isIndyReady() { + return true; + } } diff --git a/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariPoolInstrumentation.java b/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariPoolInstrumentation.java index 8e77f691b60c..bf01e62fe46c 100644 --- a/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariPoolInstrumentation.java +++ b/instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/v3_0/HikariPoolInstrumentation.java @@ -13,6 +13,8 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import net.bytebuddy.asm.Advice; +import net.bytebuddy.asm.Advice.AssignReturned; +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -37,9 +39,10 @@ public void transform(TypeTransformer transformer) { @SuppressWarnings("unused") public static class SetMetricsTrackerFactoryAdvice { + @AssignReturned.ToArguments(@ToArgument(0)) @Advice.OnMethodEnter(suppress = Throwable.class) - public static void onEnter( - @Advice.Argument(value = 0, readOnly = false) MetricsTrackerFactory userMetricsTracker, + public static MetricsTrackerFactory onEnter( + @Advice.Argument(0) MetricsTrackerFactory userMetricsTracker, @Advice.FieldValue("metricsTracker") AutoCloseable existingMetricsTracker) throws Exception { @@ -49,7 +52,7 @@ public static void onEnter( // about duplicate metrics existingMetricsTracker.close(); } - userMetricsTracker = HikariSingletons.createMetricsTrackerFactory(userMetricsTracker); + return HikariSingletons.createMetricsTrackerFactory(userMetricsTracker); } } }