Automatic System Monitoring with Heroku
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:
The real power in 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 affect 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!