The common things you'd want to do in Graphite will be easy, more complex things requires knowledge which isn't in the docs, but easily found if you're willing to invest the time in searching and reading code.
Of course everyone would like great documentation; however some open source projects may not have the time for everything -- and that's ok, because its all free and full of love.
Graphite is a great engineering achievement, and an awesome tool to have. Give it a try, even though it lacks documentation at this stage.
I'm not sure they're comparable. I did the same evaluation, one of the many criteria that I had is a system that can handle many, many data points from many hosts (at the peak we had 50 production machines) and provide robust flexible queries over them; with almost 0 maintenance/configuration.
Metrics are created dynamically, the Graphite database is optimized for this problem (more optimized than RRD - although it seems that recent versions of RRD closed the gap), and it can take a beating in terms of scale.
A single Graphite instance does this effortlessly.
We are using Graphite at Wavii. That Etsy trick is great. They just issued a new release so it's definitely not abandoned. It is cleanly coded python, we have had no trouble patching small bugs and figuring things out by reading the code.
Graphite is a very simple time-series graphing solution that does one thing very well. Setting it up is easy and feeding it data is even easier. It's basically a little server which builds RRD instances on the fly and allows you to generate images of graphs using URLs. For example, you can feed it all kinds of data from your web server, in real time, and have it produce an graph as a PNG.
I guess for me the best part is the simplicity of the whole thing. Getting data in is just a simple TCP or UDP socket call (which you can do with almost anything, from nc to curl). Getting graphs out is a URL (albit a bit complex to create by hand :). Tying it all together is a simple, but functional, web interface.
Graphine solves the problem of graph generation and building dashboards in Graphite. By default Graphite builds PNG graphs which are expensive to build on the server and aren't dynamic. Graphine coverts these static PNG files to SVG and lets the browser do all the heavy lifting with regards to rendering.
Graphite was the biggest changes I had to adjust to when I moved to my current job and will be the biggest thing I push on all future jobs.
We have stupid bash scripts that run on cron every minute. The scripts collect all sorts of system data. Things like load average, iowait, data in, data out.
They also collect all sorts of info about our custom network daemon. They take all of this info and using netcat, echo and sometimes statsd shove this all into graphite.
Having all of this info gives us several advantages. When we notice an issue we are able to track it back in time. We notice an increase in CPU usage at the same time as a sharp increase in data in? Our daemon preformed a bunch of "foo" actions at the same time, well obviously something about "foo" action is killing the box.
In addition to historical data we also can do A/B testing from an operations perspective. Take a couple of boxes split into two groups, tune sysctl "y" to x value on all of group A boxes. Turn up the same load and see how sysctl "y" affects performance of the box.
Because graphite has such a simple api for importing data we can easily expand our scripts push them to the boxes and we have new sources of data. Little fuss.