Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Erlang stats aggregation app that periodically flushes data to graphite
branch: master

Merge pull request #3 from blinkov/master

Support for Erlang VM stats reporting
latest commit 2643d30515
Richard Jones authored
Failed to load latest commit information.
src Metrics regrouping
.gitignore Initial commit
LICENSE.txt Initial commit
README.txt Remove sampling section from README as the current implementation doe…


estatsd is a simple stats aggregation service that periodically dumps data to

NB: Graphite is good, despite the website being a bit ghetto.

Inspired heavily by etsy statsd:


1) Install and configure graphite (quick-ish)
2) Install rebar, have it in your path
3) rebar compile
4) erl -pa ebin
5) > application:start(estatsd).
   > estatsd:increment(foo, 123).
6) Observe graphite now has 1 data point.


Add this app to your rebar deps, and make sure it's started somehow
eg: application:start(estatsd).

You can configure custom graphite host/port and flush interval using 
application environment vars. See estatsd_sup for details.

The following calls to estatsd are all gen_server:cast, ie non-blocking.


    estatsd:gauge(temperature, 45).            %% set temperature to 45


    estatsd:increment(num_foos).            %% increment num_foos by one

    estatsd:decrement(<<"num_bars">>, 3).   %% decrement num_bars by 3

    estatsd:increment("tcp.bytes_in", 512). %% increment tcp.bytes_in by 512


    estatsd:timing(sometask, 1534).         %% report that sometask took 1534ms

Or for your convenience: 

    Start = erlang:now(),
    estatsd:timing(sometast, Start).        %% uses now() and now_diff for you


This could be extended to take a callback for reporting mechanisms.
Right now it's hardcoded to stick data into graphite.

I've been running this since May 2011 in production for irccloud.

Richard Jones <>
Something went wrong with that request. Please try again.