Python implementation of the Statsd client/server
Python
Latest commit 56aea93 May 29, 2014 1 @sivy look a real license!
based on feedback, selecting BSD 2-clause license for proper release.
Permalink
Failed to load latest commit information.
bin added x flag to the bin file. Aug 30, 2011
debian
init Better comments in default and some more options Apr 7, 2014
pystatsd Merge pull request #84 from themartorana/hosted_graphite_integration Apr 16, 2014
redhat Also shipping and using the /etc/default/pystatsd on redhat systems Apr 7, 2014
tests make bytes the same in py2 and py3 Dec 4, 2013
.gitignore ignore .log file created during debian build Jul 12, 2011
.travis.yml use unittest instead of unittest2 Dec 4, 2013
COPYING look a real license! May 28, 2014
MANIFEST.in
Makefile
NEWS adding bits for debian packaging Jul 12, 2011
README.md
requirements.txt use unittest instead of unittest2 Dec 4, 2013
setup.py
statsd_test.py

README.md

Introduction

pystatsd is a client and server implementation of Etsy's brilliant statsd server, a front end/proxy for the Graphite stats collection and graphing server.

pystatsd has been tested on python 2.5, 2.6, and 2.7.

Status

Reviewing and merging pull requests, bringing stuff up to date, now with tests!

Build Status

Usage

See statsd_test for sample usage:

from pystatsd import Client, Server

srvr = Server(debug=True)
srvr.serve()

sc = Client('example.org',8125)

sc.timing('python_test.time',500)
sc.increment('python_test.inc_int')
sc.decrement('python_test.decr_int')
sc.gauge('python_test.gauge', 42)

Building a Debian Package

To build a debian package, run dpkg-buildpackage -rfakeroot

Upstart init Script

Upstart is the daemon management system for Ubuntu.

A basic upstart script has been included for the pystatsd server. It's located under init/, and will be installed to /usr/share/doc if you build/install a .deb file. The upstart script should be copied to /etc/init/pystatsd.conf and will read configuration variables from /etc/default/pystatsd. By default the pystatsd daemon runs as user 'nobody' which is a good thing from a security perspective.

Troubleshooting

You can see the raw values received by pystatsd by packet sniffing:

$ sudo ngrep -qd any . udp dst port 8125

You can see the raw values dispatched to carbon by packet sniffing:

$ sudo ngrep -qd any stats tcp dst port 2003