Graphite
etsy/statsd
Admin TCP interface
10 Things I Learned Deploying Graphite
Graphite and I have a long history. It all started when reading the amazing blog post introducing StatsD by Etsy’s engineering team. If you haven’t read it yet, I recommend it as it is a nice illustration of why you would want to install Graphite. If you’ve read it already, you probably have been meaning to get Graphite going but haven’t gotten around to it. Admit it, you wish you worked here Basically, what Graphite does is makes you feel like the badass engineer working on a huge project, intimately familiar with the inner workings of everything. Here is what Graphite looks like: Almost as cool Having quick access to all these statistics helps you be more productive. Graphite is such a strange beast. Graphite-web: A Django project that provides a GUI for graphite. I have tried and failed a few times getting Graphite into a state where it could be deployed automatically, and I usually gave up going “wow this tool is hard to deploy, and Munin is good enough anyway” so I kept giving up.
Data Types
The statsd server supports a number of different data types, and performs different aggregation on each of them. The three main types are counters, timers, and gauges. The statsd server collects and aggregates in 30 second intervals before flushing to Graphite. Graphite usually stores the most recent data in 1-minute averaged buckets, so when you’re looking at a graph, for each stat you are typically seing the average value over that minute. Counters¶ Counters are the most basic and default type. The statsd server collects counters under the stats prefix. Counters are managed with the incr and decr methods of StatsClient: from statsd import StatsClient statsd = StatsClient() statsd.incr('some.event') You can increment a counter by more than one by passing a second parameter: statsd.incr('some.other.event', 10) You can also use the rate parameter to produce sampled data. rate is a float between 0 and 1: # Increment this counter 10% of the time.statsd.incr('some.third.event', rate=0.1) Timers¶ Note
Related:
Related: