Application performance monitoring (APM) is the collection of tools and processes designed to help information technology (IT) professionals ensure that the applications users work with meet performance standards and provide a valuable user experience (UX). Application performance monitoring falls under the more general, related term application performance management. While application performance monitoring only focuses on tracking the performance of an application, application performance management focuses on the broader concept of controlling an app's performance levels -- monitoring is a part of this.
An effective application performance monitoring solution should focus on infrastructure monitoring, as well as tracking the user experience, application dependencies and business transactions. APM tools provide administrators with the data they need to quickly discover, isolate and solve problems that can negatively affect an application's performance.
IT professionals can use the performance metrics -- which an APM tool gathers from a specific application or multiple applications on the same network -- to identify the root cause of a problem. The data APM tools collect includes client CPU utilization, memory demands, data throughput and bandwidth consumption.
Purpose of APM
The continued availability and appropriate performance of an application are essential to a company's ability to maintain uninterrupted business processes. An effective APM solution provides an organization with the ability to connect their app performance to their business outcomes, isolate and fix errors before they affect the end user and reduce the mean time to repair (MTTR).
APM tools gather and quantify data from almost anything that plays a role in an app's performance. At the foundation, application performance monitoring tools look at the application's hosting platform, mine information on process utilization and examine memory demands and disk read/write speeds. They also track processor utilization, which consists of the number of operations per second the CPU server performs.
If memory usage is high, application performance issues will arise. As a result, APM tracks how much short-term data a CPU stores.
At the software level, APM tools track error rates, or how often an application runs into a problem or fails. For example, an error can occur when there is not enough memory for the application to access. Application performance monitoring tools also monitor code execution to identify where there might be bottlenecks during memory-intensive processes, such as searching a database.
Automated load balancing has the potential to trick IT professionals into thinking everything is working properly because the combined performance of the servers appears to be fine. In reality, the automation could be masking issues where some servers are carrying more of the load than others. APM tools can help IT professionals avoid this issue by tracking all the servers at once to find out where a problem may be.
Components of APM
Application performance monitoring focuses on tracking five primary components of app performance:
- Runtime application architecture
- Real user monitoring
- Business transactions
- Component monitoring
- Analytics and reporting
Runtime application architecture analyzes the hardware and software components used in the app's execution and the parts they communicate with. Through pattern recognition and the identification of performance problems, IT professionals are able to anticipate the potential for future problems before they happen.
Real user monitoring, also known as end user experience monitoring, gathers user-based performance data to understand how well the application is performing for users and to gauge potential performance problems. Real user monitoring enables an organization to efficiently respond to faults and understand their impact. There are two ways of tracking end user experience:
- Synthetic monitoring -- Uses probes and bots to simulate an end user to determine problems before the app is opened. This tracking method is also used to monitor service-level agreements (SLAs) associated with the app.
- Agentless monitoring -- Uses data probes to analyze network traffic that travels through load balancers and switches. This will reveal information about performance throughout the entire infrastructure, as well as details on the analyzed client -- such as their location, operating system and browser.
Business transactions, also known as user-defined transaction profiling, focuses on examining specific user interactions and recreating them to test and understand the conditions that lead to a performance problem. This process will help organizations trace events as they move across the app's various components, as well as reveal when and where events are occurring -- and whether performance efficiency is optimized.
Component monitoring, also known as application component deep dive, involves tracking all components of the IT infrastructure. Extensive, in-depth monitoring is performed on all the used resources and experienced events within the app performance infrastructure -- this includes an analysis of all servers, operating systems, middleware, application components and network components. Component monitoring provides a deeper understanding of the various elements and pathways identified in the previous processes.
Analytics and reporting involve translating the data gathered from the above processes into information that can be used to:
- define a performance baseline using historical and current data that sets an expectation for normal app performance;
- identify potential areas of improvement by comparing infrastructure changes to performance changes;
- efficiently identify, locate and resolve performance issues using historical and baseline data;
- predict and alleviate potential future issues using actionable
The analytics and reporting components are essential to ensuring the organization receives a good return on investment (ROI).
How APM works
Application performance monitoring works by observing how apps are performing and whether they are behaving appropriately; if the apps are not behaving appropriately, then data is collected on the source of the issue; the gathered data is analyzed in the context of its impact on the business; and the application environment is corrected to resolve any similar problems before they occur.
When configuring an APM solution, three categories of data should be considered: metrics, trace and log files. A metric is a quantified measure that can be used to understand the status of a specific process. Metrics are often compared to a defined baseline to analyze the system's or process's status. Changing metrics are a common indication of an underlying issue. Some of the most critical application monitoring metrics include:
- Web performance monitoring -- measures the average response time for end user interactions to see if speed is affecting app performance.
- CPU usage -- monitors CPU usage along with disk read/write speeds and memory demands to see if usage is impacting app performance.
- Application availability and uptime -- measures whether the app is online and available to users; it is frequently used to determine compliance with an organization's SLA.
- Request rates -- measures the amount of traffic received by the application to identify any significant increases, decreases or coinciding users.
- Customer satisfaction -- reveals how customers feel about the app compared to a defined baseline.
- Error rates -- observes how the app degrades or fails at the software level.
- Number of instances -- counts how many server or app instances are running at any one time. This is especially important for cloud application
A trace is the complete processing of a request. A trace is used to illustrate and understand the complete journey of a request as it travels through all the components and services of the network. A trace contains hundreds of data points that can indicate errors, diagnose security threats and detect and isolate network issues.
Log files are automatically created by an application or operating system; they hold information about user behavior and events that took place on the app. Log files are used to perform root cause analysis, understand why a metric changed and identify where an event began.
Uses of APM
IT professionals can create rules so the APM tool alerts them when a problem arises or when an application's performance dips in a specific area. They can also prioritize applications based on how business-critical they are.
In virtualized deployments, APM tools can help IT professionals monitor application servers to ensure that they comply with an SLA.
The cloud introduces a host of additional dependencies into application performance, even when applications aren't based in the cloud themselves. For this reason, there is cloud application performance monitoring, which focuses on tracking the performance of applications based in private or hybrid cloud deployments.
For instance, an APM solution must monitor network communications to see if there is a communication problem between the application and any cloud services it requires to run, or between the application and the users themselves. To do so, many tools monitor both latency and the number of incoming and outgoing requests an application makes.
APM tools track an application's performance over time and help IT professionals understand the effect that different dependencies have on an application's performance. When choosing an APM tool, organizations should look for products that focus on ease of use, user experiences and the development of actionable insights from collected data.
The APM tool also should be able to:
- track performance at the code level;
- manage apps written in the company's chosen language;
- monitor the full infrastructure stack;
- identify connections between app performance and business outcomes; and
- take advantage of artificial intelligence (AI).
Some of the top APM tools on the market include:
- Google Stackdriver Monitoring and Google Cloud Console
- Red Hat OpenShift Container Platform
- Microsoft System Center
- Azure Application Insights
- Dell Foglight
- Stackify Retrace
- New Relic APM and New Relic Alerts
- Pulse Secure Virtual Traffic Manager
The APM market has many options in addition to the tools listed above. Other vendors include AppDynamics, CA Technologies, Datadog, SolarWinds and Splunk. The AppDynamics offering monitors the entire infrastructure stack, includes code-level diagnostics and allows IT professionals to monitor users across platforms. CA Technologies has a root cause analysis tool that IT professionals can use to identify the source of a problem in the code. Datadog has a cloud-based APM tool that offers a lot of third-party integrations and a fully customizable application program interface.
SolarWinds APM has several tools IT can pick and choose from, including Pingdom, which monitors the performance of web applications. Splunk provides log-based monitoring that includes log aggregation and analytics.
Other options on the market are Dynatrace, Grafana, LogicMonitor, Nagios and Sensu.