Batsd: 37 Signals' Ruby Statsd implementation persisting to Redis
github.com
github.com
Looks brilliant otherwise.
This is really just one piece in a bigger set of things to track performance, usage, etc.
You can think of it as: Emitters --> Statsd (or in this case, Batsd) --> dashboards, alerts, etc.
We have emitters coming from Nginx, HAproxy, bluepill, postfix, etc. log files, a gem within all of our Rails apps, and a variety of other scripts that gather data. Those all point to batsd, which aggregates and stores them. We then extract the data into graphs on our dashboard, and use it extensively for Nagios alerting as well. There's a basic sample client included in this repository that we use for those purposes, though you're right, it just gets you raw numbers out of the box.
We're planning on releasing more of both the "emitters" that gather data, as well as a major part of our graphing/dashboard interface "soon".
And point well taken about making it more obvious how to get started and what you can use it for. I'll work on improving the documentation.
(I don't have a horse in this race, I haven't used statsd before -- but I am planning to deploy some sort of statistics gathering soon and I wonder why I would choose your implementation over Etsy's, apart from the obvious appeal of the 37signals brand.)
In short: we as a company have a ton of Ruby experience and comparatively little Python/Node.js experience (both in terms of understanding the tools that we use, which we like to do, and simply just in being able to confidently manage dependencies, etc.), and we knew we were going to want to build our own UI eventually anyway, which limited the utility of Graphite itself.
Edited to add: I can't say it enough, Etsy and Graphite are both fantastic pieces of engineering, with fantastic communities and support behind them (there's a fascinating writeup about Graphite in particular at http://www.aosabook.org/en/graphite.html).
Remember, we started out with a rock-solid reference impl called RRDTool. RRDTool is 13 years old and about as mature as it gets. It's also surprisingly usable and relatively wart-free.
However, its documentation is not written as a narrative "guide", so inevitably some kid eventually found it too complicated and decided to reinvent it, without realizing how far out of his depth he went. That's how graphite happened.
Now 37signals sees graphite, and goes full Dunning Kruger with yet another knock-off, this time leaving out everything that would acknowledge the slightest understanding of the problem domain. While graphite at least tried to mimic the RRDTool file-format 37signals just skips over that whole "complicated binary-stuff" and writes the data as newline-delimited ascii-text...
Are you saying that graphite is somehow deficient? How is/was the author "out of his depth"?
What benefit lies in trying to mimic RRDTool's file format?
Edit: and, "it looked like it would be easy" made my day :-)
Any idea when we'll be able to use/contribute to Flyash?
http://codeascraft.etsy.com/2011/02/15/measure-anything-meas...
It's awesome to see the community standardizing around a simple way of transporting measurements into a storage and analytics system.
collectd is very good at collecting system-level metrics and sending them somewhere. Batsd is a system for receiving those metrics and storing them.
(Note that collectd has a graphite plugin, but not one for (B|St)atsD. You'd need to write a proxy.)