<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>4.1.2</version>
</dependency>
import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
import java.util.concurrent.TimeUnit;
public class ExampleClass {
private static final MetricRegistry metricRegistry = new MetricRegistry();
private static final Timer timer = metricRegistry.timer("example.timer");
private static final Meter meter = metricRegistry.meter("example.meter");
public static void main(String[] args) {
ConsoleReporter reporter = ConsoleReporter.forRegistry(metricRegistry)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
reporter.start(1, TimeUnit.SECONDS);
// Example method to be measured
doSomething();
}
private static void doSomething() {
Timer.Context context = timer.time();
try {
// Business logic here
Thread.sleep(1000);
meter.mark();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
context.stop();
}
}
}