Statsd

From Wikitech
Jump to navigation Jump to search

statsd is a metrics aggregation server. We use it to aggregate metrics for Graphite. It flushes data points to Graphite at an interval of 60 seconds (the highest resolution supported by our Graphite configuration), otherwise only the last data point in a given minute would be stored. Statsd also adds various properties to the data such as .rate.median.p95, etc. More about that at Graphite#Extended properties.

Service

Wikimedia currently uses the statsite implementation (package, website), written is a C program that is wire-compatible with Etsy's original Statsd (written in Node.js).

Several statsite deamons are hosted on the main Graphite servers, with a local load-balancer in front of them (statsd-proxy). You should access it through the canonical hostname "statsd.eqiad.wmnet".

History

Use of Statsd was first deployed in 2015 using wikimedia/statsdlb, a StatsD-compatible load-balancer written in C by Ori Livneh. This ran in front of armon/statsite, a C implementation of statsd.

In 2016, the wikimedia/statsdlb service was replaced by hit9/statsd-proxy for performance reasons (T126447).

Use in Cloud Services environment

The hosts cloudmetrics1001 and cloudmetrics1002 have Statsd running, listening for UDP traffic on port 8125. There is no service name for it (see phab:T241284).

Metrics can be sent to Statsd in Bash using echo -n "foo.bar.baz:23|c" | nc -w 1 -u cloudmetrics1001.eqiad.wmnet 8125

See also