Skip to content

an implementation of Etsy's statsd in Go

License

Notifications You must be signed in to change notification settings

bitly/statsdaemon

Repository files navigation

statsdaemon

Port of Etsy's statsd (https://github.com/etsy/statsd), written in Go (originally based on amir/gographite).

Supports:

  • Timing (with optional percentiles)
  • Counters (positive and negative with optional sampling)
  • Gauges (including relative operations)
  • Sets

Initially only integers were supported for metric values, but now double-precision floating-point is supported.

Build Status

Installing

Binary Releases

Pre-built binaries for darwin and linux.

Current Stable Release: v0.7.1

Older Releases

Building from Source

git clone https://github.com/bitly/statsdaemon
cd statsdaemon
go get github.com/bmizerany/assert #for tests
go build

Command Line Options

Usage of ./statsdaemon:
  -address=":8125": UDP service address
  -debug=false: print statistics sent to graphite
  -delete-gauges=true: don't send values to graphite for inactive gauges, as opposed to sending the previous value
  -flush-interval=10: Flush interval (seconds)
  -graphite="127.0.0.1:2003": Graphite service address (or - to disable)
  -max-udp-packet-size=1472: Maximum UDP packet size
  -percent-threshold=[]: percentile calculation for timers (0-100, may be given multiple times)
  -persist-count-keys=60: number of flush-intervals to persist count keys
  -postfix="": Postfix for all stats
  -prefix="": Prefix for all stats
  -receive-counter="": Metric name for total metrics received per interval
  -tcpaddr="": TCP service address, if set
  -version=false: print version string
  -heartbeat-file="": heartbeat file to update after a successful write to graphite