Sensu StatsD Extension

A StatsD implementation for the Sensu client. This check extension creates a StatsD TCP & UDP listener, receives StatsD metrics, parses them, and flushes them to the Graphite plaintext format for Sensu to send to Graphite or another TSDB.

This StatsD implementation attempts to adhere to Etsy's metric type specifications.

Build Status

Installation

This extension requires Sensu version >= 0.26.

On a Sensu client machine.

sensu-install -e statsd:1.0.0

Edit /etc/sensu/conf.d/extensions.json to load it.

{
  "extensions": {
    "statsd": {
      "version": "1.0.0"
    }
  }
}

Restart the Sensu client.

sudo service sensu-client restart

Configuration

Edit /etc/sensu/conf.d/statsd.json to change its configuration.

{
  "statsd": {
    "bind": "0.0.0.0"
  }
}

The following defaults make the integration behave like Etsy's StatsD implementation.

attribute type default description
bind string "127.0.0.1" IP to bind the StatsD sockets to
port integer 8125 Port to bind the StatsD sockets to
flush_interval integer 10 The StatsD flush interval
send_interval integer 30 How often Graphite metrics are sent to Sensu
percentile integer 90 The percentile to calculate for StatsD metrics
add_client_prefix boolean true If the Sensu client name should prefix the Graphite metric path
path_prefix string "statsd" The optional Graphite metric path prefix (after client name)
add_path_prefix boolean true If the path_prefix should be used
delete_gauges boolean false If gauges that have not been updated should be deleted instead of flushed
delete_counters boolean false If counters with a value of 0 should be deleted instead of flushed
delete_timers boolean false If timers with a count of 0 should be deleted instead of flushed
reset_gauges boolean false If gauges should be reset to 0 after flushing
reset_counters boolean true If counters should be reset to 0 after flushing
reset_timers boolean true If timers should be reset/cleared after flushing
handler string "graphite" Handler to use for the Graphite metrics
truncate_output boolean true If output should be truncated

Example

Test the StatsD TCP socket:

echo "orders:1|c" | nc 127.0.0.1 8125