This blog was co-authored by myself and Simon Darken. Once a year, PagerDuty’s SREs get together for a three-day, in-person offsite. With the team spread...by Dave Bresci
December 5, 2018
Monitoring tools are intended to make life easier for DevOps team, and choosing the right DevOps monitoring tool can make all the difference for efficient workflows and happier end-users.
DevOps Monitoring tools come in all sizes and shapes
The usual monitoring toolkit for most DevOps teams include (but is not limited to):
Let’s dive into each layer and see where they fit in your DevOps monitoring process.
Infrastructure and Network Monitoring
These tools can monitor the entire infrastructure and network, including servers, routers, and switches. Infrastructure monitoring tools help identify and resolve IT infrastructure problems before they affect critical business processes. They can help you plan for upgrades before outdated systems begin to cause failures. Infrastructure and network monitoring tools also make sure maintenance outages have a minimal impact on users.
By monitoring the health of the infrastructure, you can get a sense of the health of the applications running on it. However, these tools don’t monitor the application as a complete set of services. In that sense, they take a traditional approach to monitoring that isn’t best suited for today’s cloud applications.
Example: Nagios, Zabbix
Application Performance Monitoring
Application performance monitoring tools, as the name suggests, monitor your application’s performance. They provide visibility into the behavior of your application, detect problems that impact users, and help rapidly resolve those issues. They monitor end-to-end application flow and provide traces that include code level details. APM tools contain deep diagnostics that help you find the exact line of code that may be causing a performance slowdown or failure.
While APM tools help improve performance and prevent latency and downtime, there are many issues that require deeper troubleshooting than APM can provide. These issues require indexing and searching of log files. Unfortunately, APM tools do not analyze log files and are unable to detect security attacks. You need a log analysis tool for this kind of analysis.
Example: New Relic, AppDynamics
Log analysis tools provide a scalable, reliable way to store and index your log files. They can search through files quickly, create detailed analytics based on the log data, and monitor for security violations and cyber-attacks based on the log file. However, they do not provide end-to-end application performance monitoring and are unable to reveal code level traces
Example: Splunk, Elastic Stack
None of these tools are meant for end-to-end monitoring. If you rely on any one of these tools alone when an incident occurs, you’ll always miss some key piece for the resolution.
Monitoring tools require even more monitoring
Even if you’ve adopted all of these tools for monitoring, it can get chaotic when an incident occurs. Alerts from all of these tools provide a lot of overlapping data. This means that you end up looking around frantically and jumping back and forth between tools, causing a lot of frustration for your teams as well as your customers. Your MTTRs will be longer since you face an overload of data from your entire toolset. What you need is to simplify your monitoring with incident management.
You need an incident management platform
IT, and more so DevOps teams, have long accepted that monitoring involves using a combination of best-of-breed tools that are deeply integrated with each other. With all of those monitoring tools in place, sometimes providing conflicting information and an overwhelming amount of alerts, you need a central hub to manage all of them and to provide a summary of the incident at hand. An incident management platform like PagerDuty is vital to bring order to the chaos during an incident.
Incident management tools bring out the signal from the noise by suppressing low-priority alerts and surfacing high-priority alerts to the right people at the right time. Because they deeply integrate with pretty much any other monitoring system, incident management tools bring you true end-to-end monitoring that every DevOps team requires. With mature notification options, incident management solutions like PagerDuty allow your team to choose how they’d like to be notified. Further, these processes can be automated, saving your team a lot of time and reducing overall MTTR.
All your monitoring tools offer their own set of unique features, but with them comes a lot of confusion if not managed well. Although you may never have a one-size-fits-all monitoring tool for DevOps, having the ability to manage all your monitoring tools from one place and being able to filter the data you receive with a platform like PagerDuty can get you pretty close to perfection.