From 8b15e1c8a36e07fa697f8e0d4735df4dcf3cc2b8 Mon Sep 17 00:00:00 2001 From: Iouri Goussev Date: Wed, 25 Nov 2020 16:09:16 -0500 Subject: [PATCH] Remove micrometer metrics on close --- .../micrometer/MicrometerMetricsTracker.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTracker.java b/src/main/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTracker.java index 6381c89b4..08b3009df 100644 --- a/src/main/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTracker.java +++ b/src/main/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTracker.java @@ -67,10 +67,12 @@ public class MicrometerMetricsTracker implements IMetricsTracker private final Gauge minConnectionGauge; @SuppressWarnings({"FieldCanBeLocal", "unused"}) private final PoolStats poolStats; + private final MeterRegistry meterRegistry; MicrometerMetricsTracker(final String poolName, final PoolStats poolStats, final MeterRegistry meterRegistry) { this.poolStats = poolStats; + this.meterRegistry = meterRegistry; this.connectionObtainTimer = Timer.builder(METRIC_NAME_WAIT) .description("Connection acquire time") @@ -149,4 +151,18 @@ public void recordConnectionCreatedMillis(long connectionCreatedMillis) { connectionCreation.record(connectionCreatedMillis, TimeUnit.MILLISECONDS); } + + @Override + public void close() { + meterRegistry.remove(connectionObtainTimer); + meterRegistry.remove(connectionTimeoutCounter); + meterRegistry.remove(connectionUsage); + meterRegistry.remove(connectionCreation); + meterRegistry.remove(totalConnectionGauge); + meterRegistry.remove(idleConnectionGauge); + meterRegistry.remove(activeConnectionGauge); + meterRegistry.remove(pendingConnectionGauge); + meterRegistry.remove(maxConnectionGauge); + meterRegistry.remove(minConnectionGauge); + } }