Israel Saeta Pérez (@dukebody)
StatsD
Application
Graphite
Dashboard
Alerting system
All-in-one solution for storing and visualizing time-series data in an efficient manner
Fixed-size time-series numeric database
Metric receiver, aggregation and disk flushing
Django app for rendering graphs and pulling arbitrary data
[min] pattern = \.lower$ aggregationMethod = min
[my_schema] pattern = .* retentions = 10s:6h,1min:6d,10min:1800d
http://graphite.host/render?target=metric.name
<any.metric.name> <number> <timestamp>
stats.coffee.left.cups 5 1434305622
Also JSON and CSV
Feed your own app!
Network daemon that listens for statistics and send aggregates to pluggable backend services
Uses UDP: fast, fire-and-forget
Client libraries in all popular languages
Main metric types: counter, timer, gauge
<metricname>:<value>|<type>
echo "foo:1|c" | nc -u -w0 127.0.0.1 8125
Python client for StatsD
>>> import statsd
>>> c = statsd.StatsClient('localhost', 8125)
>>> c.incr('foo') # Increment the 'foo' counter.
>>> c.timing('stats.timed', 320) # Record a 320ms 'stats.timed'.
pip install statsd
Convenience wrapper to use pystatsd in Django
>>> from django_statsd.clients import statsd
>>> statsd.incr('python.meetup')
pip install django-statsd-mozilla
sudo docker run -d --name graphite \
-p 80:80 -p 2003:2003 -p 8125:8125/udp \
hopsoft/graphite-statsd
Riemann.io + InfluxDB + Grafana
Prometheus.io
StatsD
Riak