Skip to content


Subversion checkout URL

You can clone with
Download ZIP
C port of Etsy's statsd
C CMake Other
Failed to load latest commit information.
redhat Fix packaging to remove any node references.
.gitignore More defines, better cmake config.
.travis.yml Migrate to new Travis CI build system.
LICENSE Initial commit. Fix small formatting issue.
TODO Wishful thinking?
VERSION 0.2.0: Bump to new version. Fix packaging to remove any node references.




Reimplementation of Etsy's infamous "statsd" in C.

Your mileage may vary. It works for me, and it should be wire compatible with the original node.js-based statsd.

There are some libraries used/included:

Build with cmake . && make. A simple client to submit data called "statsd_client" is built as well.


  • Wire compatible with original statsd, or use the handy JSON format instead...
  • Small, fast, efficient, with no VM overhead.
  • Able to de/serialize state to/from disk.
  • Direct stat flush to ganglia's gmond.


Usage: statsd [-hDdfFc] [-p port] [-m port] [-s file] [-G host] [-g port] [-S spoofhost] [-P prefix] [-l lockfile] [-T percentiles]
    -p port           set statsd udp listener port (default 8125)
    -m port           set statsd management port (default 8126)
    -s file           serialize state to and from file (default disabled)
    -G host           ganglia host (default disabled)
    -g port           ganglia port (default 8649)
    -S spoofhost      ganglia spoof host (default statsd:statsd)
    -P prefix         ganglia metric prefix (default is none)
    -l lockfile       lock file (only used when daemonizing)
    -h                this help display
    -d                enable debug
    -D                daemonize
    -f                enable friendly mode (breaks wire compatibility)
    -F seconds        set flush interval in seconds (default 10)
    -c                clear stats on startup
    -T                percentile thresholds, csv (defaults to 90)


Input can be specified as either a JSON object or an array of JSON objects. An example of some different inputs would be:

  • Increase counter 'test_counter' by 300:
  • Add two counters:
  • Add a counter with a set sample rate:
  • Set a timer:
Something went wrong with that request. Please try again.