
Measure Anything, Measure Everything (2011) - oxwrist
http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/
======
hoop
Shameless plug: For those of you using Celery, you can jump in rather quickly
with this decorator I made that increments task counters and sends how long
each task took to statsd:

[http://www.charleshooper.net/blog/painless-
instrumentation-o...](http://www.charleshooper.net/blog/painless-
instrumentation-of-celery-tasks-using-statsd-and-graphite/)

------
drcube
"That which is measured improves."

Be wary of measuring - and hence improving - the wrong thing.

Sometimes you optimize for the wrong metric. The classic example is measuring
programmer output by lines of code. The are many more subtle ways this can
manifest, though.

~~~
noblethrasher
We know that measuring programming output by lines of code is bad because we
measured that measure.

So, measure everything, including your measures.

~~~
stephengillie
When you have a tape measure, everything is something which must be measured.

------
misiti3780
is it just me or is graphite a HUGE pain in the ass to setup? is there a
better option for these graphs. I really want to use statsd in a few projects
but it looks like im going to have to set aside 8 hours to figure out how
graphite works (and i am a django developer)

~~~
patrickod
If you're looking to use Graphite but don't want to manage it yourself then I
highly recommend hostedgraphite.com. I and many friends at other companies use
them and are very happy with the service. They're smart guys.

~~~
tbh
Thanks Patrick!

Clickable link: <https://www.hostedgraphite.com>

(I'm one of the cofounders)

~~~
misiti3780
fuck yes!

------
jmandzik
I was inspired by this post when I first read it a few month ago. Since then,
I've used a modified version of StatsD to send data to an in house realtime
graphing engine. A lot of our tools are php backends, so it was super
convenient to be able to drop the class in and start measuring things.

For anyone interested, I used wrote node.js process takes arbitrary statsd-
compliant data point and serves a socket.io enabled front-end for 'zero-
config', realtime graphing.

We've found it useful internally for taking quick measurements on various
projects. I was going to productize or open source the whole thing, but then
life got in the way. Maybe it will see the light of day someday.

------
huhtenberg
Does anyone here use this?

~~~
jashmenn
Yes, at IFTTT we use this. I've been pleasantly surprised at the amount of
traffic statsd can handle, even without sampling.

We also believe in measuring everything you can. We're interacting with many
APIs across many boxes. Statsd + graphite are the tools we use to understand
what's happing at runtime.

Graphite has a lot of warts, but it's really powerful once you get used to it.
There are plenty of pretty interfaces you can put over graphite, but nothing
really matches it for ease of ad-hoc queries.

Typically I'll use graphite to view ad-hoc metrics and build reports. When I
find I'm repeatedly viewing a particular graphite report then I'll "hard-code"
it in gdash [1] for the rest of the team.

We use this combo to track thousands of separate metrics and we've been pretty
happy with it so far.

[1] <https://github.com/ripienaar/gdash>

------
huggah
Why are there a negative number of cups of coffee remaining?

~~~
hoop
That's actually explained in the comments but the short answer is that someone
left the coffee pot off of the scale. My guess is that the scale is zeroed
with the empty coffee pot to be on the scale.

------
wedtm
IMHO, graphite is a PITA to setup, and documentation is horrible.

If you're a Redis person, 37signals built a StatsD compatible version using
EventMachine which stores data in Redis.

<https://github.com/noahhl/batsd>

