(Based on chapter 3 of “The Definitive Guide for Production Tools” – read the full chapter)
Being able to generate data about your app is crucial, but you also need to be able to understand it. That’s where visualization and metrics tools come in. These tools take (or are given) your data and provide you with key metrics and/or digestible visualizations of what’s happening.
The first decision (after deciding to use one of these tools at all), is between open source (we cover Graphite and ELK stack) and SaaS (we cover Keen IO, Librato, and DataDog) options. The downside to the SaaS ones is that you have to weave them into your code, which is essentially a big investment. Weaving them into your code creates a huge dependency, so if you get to high scale, you’re in trouble. The downside to open source tools is they require you to install and set them up yourself. This requires a lot of machines if you get to high scale that now require monitoring, which you don’t have with SaaS. Either way, the cost of changing tools in the visualization/metrics or log analyzer space is huge.
There can be some uncertainty around using these tools instead of, or in addition to, log management tools. There is plenty of overlap between these two areas (the ELK stack covers both for example), but there are differences too. Your decision will come down to your budget and environment, but one thing to be aware of is the implicit cost of log analyzers. Any data center you’re hosted on will charge you for the bandwidth you use, and log analyzers tend to use much more bandwidth than metrics tools. One way to decide if you need log analyzers or visualization/metrics tools is journaling. If you need journaling, which is info on specific events or users, you have to use a log analyzer. If you don’t need journaling, you can use one of the metrics tools.
Graphite (and Grafana)
15 tools to use when deploying new code to production – View tool list