Native StatsD integration with Gauges and Percentiles — Librato Blog

Native StatsD integration with Gauges and Percentiles

What is StatsD?

StatsD is a simple network daemon that continuously receives metrics pushed over UDP and periodically sends aggregate metrics to upstream services like Graphite and Librato Metrics. Because it uses UDP, clients (for example, web applications) can ship metrics to it very fast with little to no overhead. This means that a user can capture multiple metrics for every request to a web application, even at a rate of thousands of requests per second. Request-level metrics are aggregated over a flush interval (default 10 seconds) and pushed to an upstream metrics service.

New StatsD Metrics backend

With the release of Etsy's StatsD version 0.3.0, users can now plugin one or more backends to control where StatsD persists aggregated metrics. By default, StatsD ships with the Graphite backend and additional backends can be loaded from NPM modules.

We are excited to announce that there is now a Metrics backend module for StatsD: This means that users can now use the latest version of Etsy's StatsD with Metrics!

Support for StatsD Gauges

With the latest release, users now have access to the recently added StatsD gauges. Gauges in StatsD represent single value readings during a flush interval. This is useful for tracking metrics like the outside temperature or the current price of a stock. Metrics will rollup gauges over time and show aggregate gauge values at higher rollup resolutions.

New Percentile Support

Users will now see percentiles calculated for all StatsD timing metrics. By default the 90th percentile is calculated for all timing metrics, but users can change that to one or more custom percentile thresholds. Each percentile is pushed to Metrics as a new metric with the metric name suffixed with the percentile threshold. Percentiles are reported as complex gauges where the sum, sum of squares, count and min/max values are calculated for all samples in the given percentile threshold range.

Getting Started with StatsD

If you are not familiar with StatsD, we recommend reading our knowledge base article for Using StatsD with Librato Metrics. To get started running StatsD in your environment, follow the installation instructions in the statsd-librato-backend README.

Updating from Librato's StatsD fork

If you're a current user of the Librato StatsD fork, we recommend you update to the new Librato StatsD backend. This fork is now deprecated in favor of the statsd-librato-backend. We recommend reading the Upgrading from Librato's StatsD Fork knowledge base article to get started.