What is APM?
Application performance monitoring (APM for short), is the practice of using real-time and trending data to track both application performance and the impact of performance problems on end user digital experiences. APM is also known as application performance management.
A good APM tool should answer the following questions:
- “Is an application broken or slow?”
- “If the application is broken or slow, what’s causing the issue?”
DevOps and engineering teams can use APM to answer these questions and to quickly find and fix issues before they affect real users.
Why is APM important?
Nobody wants to deal with a broken or slow app, whether that’s end users or the teams maintaining and building the application.
End users expect speed and reliability when they use web applications. They want optimized performance and fast response times.
Users will abandon a website within seconds if it doesn’t load. Even worse, if someone has a bad user experience, they are more likely to move on to a competitor. One study suggests that 12% of users would actually warn friends and family against engaging with a particular app or site. This could have detrimental effects on business success, customer satisfaction, and brand reputation.
Application performance issues also cause huge headaches for engineering teams. An on-call engineer might get a critical system alert at 3 AM regarding business transactions that leads to entire teams trying to solve a problem in the middle of the night.
It’s even worse when there is a critical alert that has no context, meaning that engineers aren’t sure where the problem is coming from. The issue might be coming from an API, Kubernetes cluster, cloud service, or any number of other locations from code level to the cloud. The longer it takes to solve the issue, the more it negatively impacts customers and the company’s bottom line.
Application performance monitoring helps engineering teams pinpoint issues more quickly—and solve issues proactively. For example, an engineering team could set up a critical threshold that sends an alert when page loading times become too slow, then combine that with detailed tracing to quickly pinpoint the cause and fix it before end users are affected.
The alternative is learning about the issue from end users, which means they are already affected—and then scrambling to solve the problem without the additional context that application performance monitoring provides, resulting in longer mean-time-to-resolution (MTTR).
What can you monitor with an APM solution?
A software application often has many different services and layers to monitor, and APM can be used to monitor each of those layers. For example, an APM solution can be used to collect current and historical information about the following:
- Infrastructure including memory usage, CPU utilization, and application availability
- Application backend such as database query performance and error analysis
- Application frontend including web browser rendering, user experience monitoring, and performance metrics
What is the difference between APM and observability?
APM involves monitoring an application’s performance, but many modern applications are too complex to monitor and manage with just APM.
Observability is about having deep, technical insights into the state of your entire system, no matter how large or complex it is. Application performance monitoring is one piece of observability. With many applications, it’s necessary to have a full observability solution.
If you are interested in having a deep understanding of application monitoring, you also need to learn about observability. You can get started by reading What Is Observability?