Skip to content

Commit 08573c6

Browse files
For long task timers removes entries from Dropwizard registry
fixes gh-2924
1 parent e988e3a commit 08573c6

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

micrometer-core/src/main/java/io/micrometer/core/instrument/dropwizard/DropwizardMeterRegistry.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ public DropwizardMeterRegistry(DropwizardConfig config, MetricRegistry registry,
7171

7272
private void onMeterRemoved(Meter meter) {
7373
registry.remove(hierarchicalName(meter.getId()));
74+
if (meter instanceof LongTaskTimer) {
75+
for (Statistic statistic : Statistic.values()) {
76+
registry.remove(hierarchicalName(meter.getId().withTag(statistic)));
77+
}
78+
}
7479
}
7580

7681
public MetricRegistry getDropwizardRegistry() {

micrometer-core/src/test/java/io/micrometer/core/instrument/dropwizard/DropwizardMeterRegistryTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,13 @@ void removeShouldWork() {
111111
assertThat(registry.getDropwizardRegistry().getMeters()).isEmpty();
112112
}
113113

114+
@Issue("#2924")
115+
@Test
116+
void removeShouldWorkForLongTaskTimer() {
117+
LongTaskTimer timer = LongTaskTimer.builder("foo").register(registry);
118+
assertThat(registry.getDropwizardRegistry().getGauges()).hasSize(3);
119+
registry.remove(timer);
120+
assertThat(registry.getDropwizardRegistry().getGauges()).isEmpty();
121+
}
122+
114123
}

0 commit comments

Comments
 (0)