Using the beat framework to send statsd formatted messages to ElasticSearch.
Download
What we do
We listen for UDP pacakges. And forwards them as beat.Event into Elastic Search at the index statsdbeat-<beat-version>-<yyyy-mm-dd>
Support
-
Following statsd types are supported
Type Example Counters `platform-insights.test.counter.tick:1 Gauge `platform-insights.test.gauge.num_goroutine:1 Histogram `platform-insights.test.histogram.my_histo:17 Timing `platform-insights.test.timing.ping:10 -
Tags (in InfluxDB notation format
counter,tagName=tagValue,anotherTag=withAnotherValue:1|c) -
Multi-Metric Packets
Configuration
statsdbeat:
statsdserver: ":8125" # where should we listen for the UDP messages. Typically your localhost on port 8125
period: 5s # interval period the events (if any) are send to the output
Spooling
Spooling to disk is currently a beta feature. Use with care.
You can configure in statsbeat.yml the spooling to disk
output.elasticsearch:
hosts: ["https://vpc-<your-name>.<aws-region>.es.amazonaws.com:443"]
queue:
spool:
file:
flush.timeout:1s
What we don't do (yet)
-
No pre-aggreation (roll-ups) of data before sending to Elastic Search
-
No Sets
-
No Sampling
-
No resend Gauge information ()
-
We don't compute percentile aggregations. Elastic Search has this already build in
Development
References:
- Etsy Statsd metric types
- Elastic Search backend, (NPM module for Etsty Statsd to output to ElasticSearch )