Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit 087cad5

Browse files
Matthias Berndtjklukas
authored andcommitted
clean up metricRegistry in close() (#7)
1 parent 9ed0ecd commit 087cad5

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/main/java/com/simple/metrics/kafka/DropwizardReporter.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@
1212
import java.util.ArrayList;
1313
import java.util.List;
1414
import java.util.Map;
15+
import java.util.Set;
16+
import java.util.HashSet;
1517

1618
public class DropwizardReporter implements MetricsReporter {
1719
private static final Logger LOGGER = LoggerFactory.getLogger(DropwizardReporter.class);
1820
protected static final String METRIC_PREFIX = MetricsReporter.class.getPackage().getName();
1921

2022
protected MetricRegistry registry;
2123
protected DropwizardReporterConfig config;
24+
private Set<String> metricNames = new HashSet<>();
2225

2326
@Override
2427
public void configure(Map<String, ?> configs) {
@@ -51,6 +54,7 @@ public Double getValue() {
5154
LOGGER.debug("Registering {}", name);
5255
try {
5356
registry.register(name, gauge);
57+
metricNames.add(name);
5458
} catch (IllegalArgumentException e) {
5559
LOGGER.warn("metricChange called for `{}' which was already registered, ignoring.", name);
5660
}
@@ -61,10 +65,14 @@ public void metricRemoval(KafkaMetric kafkaMetric) {
6165
String name = dropwizardMetricName(kafkaMetric);
6266
LOGGER.debug("Removing {}", name);
6367
registry.remove(name);
68+
metricNames.remove(name);
6469
}
6570

6671
@Override
67-
public void close() {}
72+
public void close() {
73+
for (String name: metricNames)
74+
registry.remove(name);
75+
}
6876

6977
private static String dropwizardMetricName(KafkaMetric kafkaMetric) {
7078
MetricName name = kafkaMetric.metricName();

0 commit comments

Comments
 (0)