We use statsd and graphite at work. I like statsd – there are even decent go implementations of it if you don’t want node for some reason. However, graphite is a pain to install and manage.
I haven’t yet played with influxdb as a graphite replacement (with graphing via graphana), but I intend to do so sometime this year. It apparently supports the collectd protocol, so you can just set it as the collectd network endpoint.
We’ve been using Heroku’s SHH to pipe host metrics to Librato. PagerDuty provides pretty good integration to Librato so setting up metrics-based alerts is pretty simple.
Good thing is you don’t have to run a service like Graphite (I used to in the past, and I don’t want to back to that time in my life). Librato isn’t free, of course, and like all providers they have occasional (but rare) service disruptions. Then again, so did my setup a while back.