Skip to content

Commit 6c52b84

Browse files
authored
make oracle-ucp indy-ready (#15130)
1 parent 0e7315d commit 6c52b84

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

instrumentation/oracle-ucp-11.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/oracleucp/v11_2/OracleUcpInstrumentationModule.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
import com.google.auto.service.AutoService;
1111
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
13+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1314
import java.util.List;
1415

1516
@AutoService(InstrumentationModule.class)
16-
public class OracleUcpInstrumentationModule extends InstrumentationModule {
17+
public class OracleUcpInstrumentationModule extends InstrumentationModule
18+
implements ExperimentalInstrumentationModule {
1719

1820
public OracleUcpInstrumentationModule() {
1921
super("oracle-ucp", "oracle-ucp-11.2");
@@ -23,4 +25,9 @@ public OracleUcpInstrumentationModule() {
2325
public List<TypeInstrumentation> typeInstrumentations() {
2426
return singletonList(new UniversalConnectionPoolInstrumentation());
2527
}
28+
29+
@Override
30+
public boolean isIndyReady() {
31+
return true;
32+
}
2633
}

instrumentation/oracle-ucp-11.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/oracleucp/v11_2/UniversalConnectionPoolInstrumentation.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,18 @@ public static void onExit(@Advice.This UniversalConnectionPool connectionPool) {
5353
public static class StopAdvice {
5454

5555
@Advice.OnMethodEnter(suppress = Throwable.class)
56-
public static void onEnter(@Advice.Local("otelCallDepth") CallDepth callDepth) {
57-
callDepth = CallDepth.forClass(UniversalConnectionPool.class);
56+
public static CallDepth onEnter() {
57+
CallDepth callDepth = CallDepth.forClass(UniversalConnectionPool.class);
5858
callDepth.getAndIncrement();
59+
return callDepth;
5960
}
6061

6162
@Advice.OnMethodExit(suppress = Throwable.class, onThrowable = Throwable.class)
6263
public static void onExit(
63-
@Advice.This UniversalConnectionPool connectionPool,
64-
@Advice.Local("otelCallDepth") CallDepth callDepth) {
65-
if (callDepth == null || callDepth.decrementAndGet() > 0) {
64+
@Advice.This UniversalConnectionPool connectionPool, @Advice.Enter CallDepth callDepth) {
65+
if (callDepth.decrementAndGet() > 0) {
6666
return;
6767
}
68-
6968
telemetry().unregisterMetrics(connectionPool);
7069
}
7170
}

0 commit comments

Comments
 (0)