Automatic System Monitoring with Heroku

This article was originally published on July 21, 2014, by Charlie von Metzradt, co-founder of Hosted Graphite, for the Hosted Graphite blog. Since then, Hosted Graphite has become MetricFire but our goal has stayed the same: Monitoring should be accessible. For more information and for updates on new features, book a time with our team!

Hosted Graphite has been available as a Heroku add-on for some time, but we’ve just added a new way to get system information out of your Dynos instantly - automated system dashboards. 

Using Heroku’s log-runtime-metrics we retrieve and process Heroku’s syslog information for your Dynos including:

  • Load average - 1 / 5 / 15-minute averages
  • Memory and Swap - Resident memory, disk cache, swap, total memory, and cumulative totals for pages written to and read from disk.
  • HTTP metrics - The number of requests broken down by HTTP method and status codes, data transferred, and connect and service times.

From this data, we create automatic Grafana dashboards giving you a great high-level overview of what’s happening in your Heroku apps.

It looks a little something like this:

A screenshot of a Hosted Graphite auto generated Heroku Dashboard

The real power of this approach is when you combine it with the application metrics specific to your app that Hosted Graphite brings. This way, you get a detailed view of your app, and also the effect that your code has on the underlying Dynos that it runs on. Benchmark that new function that you’re pretty sure is good to drop into production and then make 100% sure by seeing what it does to the memory and load average on the box.

The end result is both native and custom application metrics in one place as well as all the advanced data types you expect from Hosted Graphite - min/max/sum/averages, and arbitrary percentile data

How do I get it?

New Hosted Graphite Heroku users won’t need to do anything; we’ll start pulling metric data from your syslog data once you add the Hosted Graphite app.

For existing users you can add us as a syslog drain using the Heroku drains command, and we will start pulling this data and graph it for you.

To enable the drain, use the following command:

heroku drains:add https://webhooks.hostedgraphite.com/heroku/logs/?apikey=<your api key here>

For more details on how this works, see Heroku’s documentation.

Now, get measuring!

Hungry for more knowledge?

Related posts