Application Performance Monitoring: A complete overview for 2021
Table of ContentsWhat is application performance monitoring (APM)?How does APM work?What questions can APM answer?How is network monitoring different?Benefits of APMApplication Performance Monitoring Best PracticesMonitoring vs. managementAPM vs. ObservabilityCommonly Asked Questions about Application Performance Monitoring
Application Performance Monitoring is a technique used to monitor key app performance metrics about the performance of a web application in production. It can be thought of as a ‘second wave’ of performance monitoring techniques which was preceded by traditional host-based monitoring. Host-based monitoring focused on indicators such as storage, memory, CPU, and network utilization. Application monitoring, which should focus on infrastructure monitoring, goes a step further and focuses on the actual “end-user” metrics of an application in real time, such as code-level errors, slowdowns in response times and error rates.
Application Performance Monitoring tools can function in several different ways — common implementations include an agent process that is deployed alongside a web application that hooks into the application runtime to collect telemetry data from the process, or specialized web appliances that inspect Layer 7 traffic to generate telemetry.
In conjunction with the monitoring mechanism, synthetic traffic is typically generated by an external application and sent to the application in order to monitor performance at predefined throughput intervals. The key difference between APM tools and other forms of monitoring is that the telemetry data is generated by inspecting the application runtime and the performance metrics that it exposes.
APM is designed to answer questions that you can’t get an answer to from traditional host monitoring. While understanding the raw resource utilization of your application is useful, it doesn’t give you a lot of information when you’re trying to track down why a specific request has high latency, why a particular transaction against your database is failing, or how your application performs under load.
- Why does a particular request have high latency?
- Why are we getting an error here?
- What is the root cause of this substandard user experience?
- Why is this transaction failing?
- What caused that outage?
- How is this issue affecting the user experience of end users?
Network monitoring focuses on collecting telemetry from network devices such as switches or routers in order to detect issues with an application. Network monitoring requires stitching together information from each link to try to get a complete picture. This approach doesn’t provide sufficient resolution or information for modern applications, however, especially when the application itself may be running behind a variety of proxies or service routers which themselves are running on virtualized networking equipment.
APM allows you to gather real-time performance data from the perspective of an end-user, rather than relying on second or third order metrics about host or network utilization in order to understand your application’s performance whether it's running on-premise, SAAS or in the cloud. You’re able to answer questions about specific page load times and database queries in a way that you simply can’t with traditional host-based monitoring. This information can be invaluable in trying to track down bugs in your software, or in understanding how your application performs under load.
- Select the tool fit your organization: Every tool is different. Be sure to research for your needs.
- Create automatic alerts: Clear and timely alerts are invaluable to your teams.
- Ensure internal procedures are in place: Having a full understanding of procedures and any new processess across your organization is critical.
Application Performance Management is distinct from Application Performance Monitoring by applying to a suite of applications, rather than just one. An application performance management tool will allow you to aggregate multiple types of metrics across multiple applications and services and compare them in order to discover specific performance issues and regressions in your suite of applications.
APM is currently being eclipsed by observability, a holistic approach to understanding the performance of your application as well as a shared set of practices and terminology to help communicate performance across your organization. While observability helps you navigate from effect to cause, APM falls short of being able to answer “unknown unknowns,” questions that you didn’t think to ask ahead of time.
Observability is also uniquely capable of answering questions about modern, microservice-based application architectures where you will often contend with polyglot services, serverless components, and container-based deployments running on Kubernetes. In addition, observability provides a shared language to talk about performance by focusing on the measurement of service level objectives and service level indicators that are more broadly interpretable and applicable to your unique application architecture than simple throughput or health checks.
APM solutions provide alerting systems to Devops, IT Operations, Site Reliability Engineers, and more to quickly troubleshoot performance issues and slowdowns.
If there is an issue in your system, APM automatically gathers real-time data around the issue and alerts the team. This is done by inspecting the telemetry data to assess the performance metrics and application runtime.
Each performance monitoring tool at combine and analyze metrics from all areas of your system and compare them to your baseline to pinpoint regressions or issues in your system.
Application Performance Monitoring (APM) is a way to observe your systems to ensure they are performing at their best. This can include analyzing performance, transaction, availability issues to remove any bottlenecks.
APM is key when something goes wrong and there’s no visibility into why. See an outage? Customers getting an error checking out? APM can figure out why and reduce your Mean Time To Resolution (MTTR).