statsd_exporter receives StatsD-style metrics and exports them as Prometheus metrics.
Overview
With StatsD
To pipe metrics from an existing StatsD environment into Prometheus, configure StatsD's repeater backend to repeat all received metrics to a statsd_exporter process. This exporter translates StatsD metrics to Prometheus metrics via configured mapping rules.
+----------+ +-------------------+ +--------------+
| StatsD |---(UDP/TCP repeater)--->| statsd_exporter |<---(scrape /metrics)---| Prometheus |
+----------+ +-------------------+ +--------------+
Without StatsD
Since the StatsD exporter uses the same line protocol as StatsD itself, you can also configure your applications to send StatsD metrics directly to the exporter. In that case, you don't need to run a StatsD server anymore.
We recommend this only as an intermediate solution and recommend switching to native Prometheus instrumentation in the long term.
Tagging Extensions
The exporter supports Librato, InfluxDB, and DogStatsD-style tags, which will be converted into Prometheus labels.
For Librato-style tags, they must be appended to the metric name with a delimiting #, as so:
metric.name#tagName=val,tag2Name=val2:0|c
See the statsd-librato-backend README for a more complete description.
For InfluxDB-style tags, they must be appended to the metric name with a delimiting comma, as so:
metric.name,tagName=val,tag2Name=val2:0|c
See this InfluxDB blog post for a larger overview.
For DogStatsD-style tags, they're appended as a |# delimited section at the end of the metric, as so:
metric.name:0|c|#tagName=val,tag2Name=val2
See Tags in the DogStatsD documentation for the concept description and Datagram Format. If you encounter problems, note that this tagging style is incompatible with the original statsd implementation.
Be aware: If you mix tag styles (e.g., Librato/InfluxDB with DogStatsD), the exporter will consider this an error and the sample will be discarded. Also, tags without values (#some_tag) are not supported and will be ignored.
|