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

Commit

Permalink
clean up metricRegistry in close() (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Berndt authored and jklukas committed Sep 13, 2017
1 parent 9ed0ecd commit 087cad5
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/main/java/com/simple/metrics/kafka/DropwizardReporter.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.HashSet;

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

protected MetricRegistry registry;
protected DropwizardReporterConfig config;
private Set<String> metricNames = new HashSet<>();

@Override
public void configure(Map<String, ?> configs) {
Expand Down Expand Up @@ -51,6 +54,7 @@ public Double getValue() {
LOGGER.debug("Registering {}", name);
try {
registry.register(name, gauge);
metricNames.add(name);
} catch (IllegalArgumentException e) {
LOGGER.warn("metricChange called for `{}' which was already registered, ignoring.", name);
}
Expand All @@ -61,10 +65,14 @@ public void metricRemoval(KafkaMetric kafkaMetric) {
String name = dropwizardMetricName(kafkaMetric);
LOGGER.debug("Removing {}", name);
registry.remove(name);
metricNames.remove(name);
}

@Override
public void close() {}
public void close() {
for (String name: metricNames)
registry.remove(name);
}

private static String dropwizardMetricName(KafkaMetric kafkaMetric) {
MetricName name = kafkaMetric.metricName();
Expand Down

0 comments on commit 087cad5

Please sign in to comment.