Hikaricp: Avoid registering duplicate metrics (#6325)
* Hikaricp: Avoid registering duplicate metrics * Update instrumentation/hikaricp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hikaricp/HikariPoolInstrumentation.java Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com> * spotless * Trigger build Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
This commit is contained in:
parent
07f787693c
commit
b3e543d2df
|
@ -39,8 +39,16 @@ public class HikariPoolInstrumentation implements TypeInstrumentation {
|
||||||
|
|
||||||
@Advice.OnMethodEnter(suppress = Throwable.class)
|
@Advice.OnMethodEnter(suppress = Throwable.class)
|
||||||
public static void onEnter(
|
public static void onEnter(
|
||||||
@Advice.Argument(value = 0, readOnly = false) MetricsTrackerFactory userMetricsTracker) {
|
@Advice.Argument(value = 0, readOnly = false) MetricsTrackerFactory userMetricsTracker,
|
||||||
|
@Advice.FieldValue(value = "metricsTracker") AutoCloseable existingMetricsTracker)
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
if (existingMetricsTracker != null) {
|
||||||
|
// we call close on the existing metrics tracker in case it's our wrapper, so that our
|
||||||
|
// wrapper will unregister itself and won't keep recording metrics which leads to warnings
|
||||||
|
// about duplicate metrics
|
||||||
|
existingMetricsTracker.close();
|
||||||
|
}
|
||||||
userMetricsTracker = HikariSingletons.createMetricsTrackerFactory(userMetricsTracker);
|
userMetricsTracker = HikariSingletons.createMetricsTrackerFactory(userMetricsTracker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue