There are a ton of application performance monitoring and server monitoring services these days, but I’ve decided to use Datadog for my infrastructure monitoring needs. It’s cheap, customizable, and extensible.
My two favorite features are the completely customizable dashboards and the ability to track custom metrics. Out of the box, the Datadog agent does not report on application performance metrics: its focus is server monitoring. However, having your web app report on custom metrics is pretty simple thanks to the clients Datadog provides, such as dogstatsd-ruby.
Using a gist written by Michael McClenaghan (mm53bar) as a starting point, I wrote a gem for Ruby on Rails applications called datadoge. While it only tracks some basic application performance metrics out of the box, it’s pretty simple to add your own metrics by instrumenting Notification events.
With the datadoge gem, your customizable Datadog dashboards can become even more powerful: compare historical application performance metrics against server performance metrics on a single screen. Combined with a template variable to define the app server host name, you can create a reusable dashboard for every web application server in your environment.