Debian packaging of gstatsd
Go to file
Patrick Hensley c6d3d22f16 Merge pull request #13 from kovalevfm/master
add ipv6 support
2014-09-03 08:29:39 -04:00
debian Release 0.5 2013-05-29 12:45:26 -04:00
gstatsd add ipv6 support 2014-09-03 13:36:11 +04:00
.gitignore Initial release of gstatsd 0.1. 2011-06-28 21:03:22 -04:00
LICENSE Added license file, fix for PYPI. 2011-06-28 22:48:59 -04:00
README.md Release 0.4 2011-06-30 17:20:53 -04:00
README.txt Release 0.4 2011-06-30 17:20:53 -04:00
makedoc.sh Release 0.4 2011-06-30 17:20:53 -04:00
setup.py Release 0.3. 2011-06-29 11:59:34 -04:00

README.md

gstatsd - A statsd service implementation in Python + gevent.

If you are unfamiliar with statsd, you can read why statsd exists, or look at the NodeJS statsd implementation.

License: Apache 2.0

Requirements

  • Python - I'm testing on 2.6/2.7 at the moment.
  • gevent - A libevent wrapper.
  • distribute - (or setuptools) for builds.

Using gstatsd

Show gstatsd help:

% gstatsd -h

Options:

Usage: gstatsd [options]

 A statsd service in Python + gevent.

Options:
  --version             show program's version number and exit
  -b BIND_ADDR, --bind=BIND_ADDR
                        bind [host]:port (host defaults to '')
  -s SINK, --sink=SINK  a graphite service to which stats are sent
                        ([host]:port).
  -v                    increase verbosity (currently used for debugging)
  -f INTERVAL, --flush=INTERVAL
                        flush interval, in seconds (default 10)
  -p PERCENT, --percent=PERCENT
                        percent threshold (default 90)
  -D, --daemonize       daemonize the service
  -h, --help

Start gstatsd listening on the default port 8125, and send stats to graphite server on port 2003 every 5 seconds:

% gstatsd -s 2003 -f 5

Bind listener to host 'foo' port 8126, and send stats to the Graphite server on host 'bar' port 2003 every 20 seconds:

% gstatsd -b foo:8126 -s bar:2003 -f 20

To send the stats to multiple graphite servers, specify '-s' multiple times:

% gstatsd -b :8125 -s stats1:2003 -s stats2:2004

Using the client

The code example below demonstrates using the low-level client interface:

from gstatsd import client

# location of the statsd server
hostport = ('', 8125)

raw = client.StatsClient(hostport)

# add 1 to the 'foo' bucket
raw.increment('foo')

# timer 'bar' took 25ms to complete
raw.timer('bar', 25)

You may prefer to use the stateful client:

# wraps the raw client
cli = client.Stats(raw)

timer = cli.get_timer('foo')
timer.start()

... do some work ..

# when .stop() is called, the stat is sent to the server
timer.stop()