import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.jvm.CpuTimeRatioGauge;
import com.codahale.metrics.jvm.FileDescriptorRatioGauge;
import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
import com.codahale.metrics.jvm.ThreadStatesGaugeSet;
public class MetricsExample {
private static final MetricRegistry metrics = new MetricRegistry();
public static void main(String[] args) throws InterruptedException {
ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
// Register JVM metrics
metrics.register("cpu", new CpuTimeRatioGauge());
metrics.register("memory", new MemoryUsageGaugeSet());
metrics.register("file-descriptors", new FileDescriptorRatioGauge());
metrics.register("threads", new ThreadStatesGaugeSet());
// Start reporting metrics
reporter.start(1, TimeUnit.SECONDS);
// Your code here
// Stop reporting metrics
reporter.stop();
}
}