dropwizard-wavefront
A Dropwizard Metrics reporter for wavefront.
Installing
Add the maven dependency to your project:
<dependency>
<groupId>org.whispersystems</groupId>
<artifactId>dropwizard-wavefront</artifactId>
<version>{latest_version_here}</version>
</dependency>
Then you just need to tell Dropwizard where to find the reporter. From your module base dir:
$ mkdir -p /resources/META-INF/services/
$ echo "org.whispersystems.wavefront.WavefrontMetricsReporterFactory" > /resources/META-INF/services/io.dropwizard.metrics.ReporterFactory
Configuring
Add the following to your configuration yaml file:
metrics:
reporters:
- type: wavefront
token: {your api token}
hostname: "metrics.wavefront.com"
frequency: 60 seconds
Done! Your metrics should now report to wavefront every 60 seconds.
Additional Gauges
There are system gauges for network, cpu, file descriptors, and memory available as well.
To use them:
environment.metrics().register(name(CpuUsageGauge.class, "cpu"), new CpuUsageGauge());
environment.metrics().register(name(FreeMemoryGauge.class, "free_memory"), new FreeMemoryGauge());
environment.metrics().register(name(NetworkSentGauge.class, "bytes_sent"), new NetworkSentGauge());
environment.metrics().register(name(NetworkReceivedGauge.class, "bytes_received"), new NetworkReceivedGauge());
environment.metrics().register(name(FileDescriptorGauge.class, "fd_count"), new FileDescriptorGauge());