Skip to content

Commit

Permalink
Merge pull request dropwizard#106 from datafueled/shutdown
Browse files Browse the repository at this point in the history
Add a shutdown method to Metrics to make it easier to shut everything down.
  • Loading branch information
codahale committed Nov 16, 2011
2 parents 77e55df + 945655d commit 1d7ecbe
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions metrics-core/src/main/java/com/yammer/metrics/Metrics.java
Expand Up @@ -3,6 +3,7 @@
import com.yammer.metrics.core.*;
import com.yammer.metrics.reporting.ConsoleReporter;
import com.yammer.metrics.reporting.JmxReporter;
import com.yammer.metrics.util.Utils;

import javax.management.MalformedObjectNameException;
import java.util.Map;
Expand All @@ -13,15 +14,16 @@
*/
public class Metrics {
private static final MetricsRegistry DEFAULT_REGISTRY = new MetricsRegistry();
private static final Thread SHUTDOWN_HOOK = new Thread() {
public void run() {
JmxReporter.shutdownDefault();
}
};
static {{
JmxReporter.startDefault(DEFAULT_REGISTRY);
// make sure we initialize this so it can monitor GC etc
VirtualMachineMetrics.daemonThreadCount();
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
JmxReporter.shutdownDefault();
}
});
Runtime.getRuntime().addShutdownHook(SHUTDOWN_HOOK);
}}

private Metrics() { /* unused */ }
Expand Down Expand Up @@ -441,4 +443,11 @@ public static Map<MetricName, Metric> allMetrics() {
public static MetricsRegistry defaultRegistry() {
return DEFAULT_REGISTRY;
}

public static void shutdown() {
Utils.shutdownThreadPools();
DEFAULT_REGISTRY.threadPools().shutdownThreadPools();
JmxReporter.shutdownDefault();
Runtime.getRuntime().removeShutdownHook(SHUTDOWN_HOOK);
}
}

0 comments on commit 1d7ecbe

Please sign in to comment.