A Dropwizard Metrics reporter for wavefront.
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
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.
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());