Application Performance Monitoring Definition
Application performance monitoring (APM) is the management and monitoring of availability and performance of software applications in the systems management and information technology (IT) fields. The goal of APM is to maintain an expected level of service by identifying and diagnosing complex application performance problems. Traditionally, APM looks at the performance of the application itself, typically by examining log files, using agents or even AI algorithms to detect whether the application is behaving as expected. Recently, organizations are looking at the network-level behavior of the application – the requests it makes on other infrastructure resources, the bandwidth required, traffic loads. This is done by load balancers and application delivery controllers that can ensure each application is responding within normal parameters.
APM is carried out using a variety of application performance monitoring tools. APM tools provide administrators with critical information, enabling them to quickly detect and resolve problems that affect application performance.
Gartner first originated an application performance monitoring framework to focus monitoring efforts. That first iteration had five focus areas:
End-user experience monitoring. Also called digital user experience monitoring, end-user experience monitoring tracks the behavior of a software application from the user’s point of view, searching for experiences of downtime, slowness, or errors. A proactive approach to end-user experience is possible with synthetic monitoring, and real-user monitoring offers a passive approach.
Application runtime architecture discovery, modeling, and display. This area involves visualizing and mapping all components of application architecture to see how they interact and detect problems more readily.
User-defined transaction profiling. This method analyzes each user transaction, and detects and isolates application performance issues and the specific interactions they are connected to. Tracing enables developers to find the precise database query, line of code, or third-party call along the user’s journey from frontend to backend that affects application performance.
Application deep-dive analysis. This section refers to the integrated monitoring of all application infrastructure components and collection of their performance metrics.
IT operations analytics. This refers to the preventative aspect of analyzing data to detect trends, patterns in usage, and performance problems to improve a strategy, enhance end-user experience, and prevent similar issues moving forward.
In 2016, Gartner reorganized this framework to include three parts:
- Digital experience monitoring (DEM) now replaces end-user experience monitoring
- Application discovery, tracing and diagnostics (ADTD) now covers the middle three sections touching on application deep-dive analysis, transaction profiling, and application topology
- Artificial intelligence for IT operations (AIOps) for applications now replaces IT operations analytics
Application Performance Monitoring FAQs
What is Application Performance Monitoring?
Businesses can use application performance monitoring solutions to do a number of things:
- Analyze their IT environment to determine whether it meets performance standards.
- Identify, repair, and prevent potential issues and bugs in the IT environment.
- Closely monitor IT resources to offer flawless user experiences.
- Prevent anomalous application behaviors that impact network performance.
The best application performance monitoring services and solutions reduce mean time to resolution (MTTR) by empowering IT teams with essential information that links business outcomes and application performance, and detects and fixes performance issues and network anomalies before they affect user experience.
Although the related terms “application performance monitoring” and “application performance management” are sometimes both abbreviated APM and used interchangeably, application performance management and monitoring are not the same thing. Application performance management typically refers to a broader management strategy for better application performance that includes application performance monitoring.
End-to-end application performance monitoring provides actual data insights on a number of set metrics (see the section below for application performance monitoring best practices and metrics). Application performance monitoring focuses solely on tracking application performance, while application performance management has a wider focus on controlling the performance levels of the application—and monitoring is one component of this management.
How to Monitor Application Performance?
Most APM solutions boast a range of application performance monitoring features focused on infrastructure monitoring and tracking application dependencies, the user experience, and business transactions. To prevent negative impact to application performance, APM tools give administrators essential data for detecting and solving problems quickly.
Types of Application Performance Monitoring Tools
There are several basic types of application performance management tools:
Metrics-based application performance monitoring tools. These APM tools use various app and server metrics which may identify slow areas, but are unlikely to reveal insights into causes of slow performance.
Code-level application performance monitoring tools. A better solution for application performance monitoring is based in code-level diagnostics, transaction tracing, and profiling because it provides more insight into causes of poor application performance.
Network-based application performance monitoring tools. This class of APM tools, sometimes called network-based performance monitoring, network-based performance management (NPM), or an application performance monitoring cloud service, closely monitors all network traffic and offers actionable insights into it to measure application performance. This is often handled by a load balancer.
What Do APM Tools Monitor?
Real-time insight into the health of each business transaction the application processes is critical to supporting the user journey. For this reason, APM tools engage in end-to-end application performance monitoring by enforcing several application performance monitoring requirements:
- Observing application behavior for anything abnormal
- Detecting abnormal application behavior, gathering data on the source of the issue—the application itself, or other issues such as supporting infrastructure or app dependencies—and alerting the administrators about the problem
- Analyzing the collected data for business impact
- Adapting to prevent the same issue from recurring by fixing similar flaws in the application environment—before business impact
Ideally, application performance monitoring companies monitor and collect data on everything that affects app availability. Among the most critical application performance monitoring metrics are:
Application availability/uptime. This common metric refers to whether the application is available and online. Uptime and availability are frequently cited in service level agreements (SLAs).
CPU usage. At the server level, APM tracks CPU usage, disk read/write speeds, and memory demands at the server level.
Customer satisfaction. How users perceive their experience is among the most important metrics.
Error rates. Application performance monitoring tracks when application performance fails or degrades (such as when a search or other web request ends in an error), and how often that happens, at the software level.
Garbage collection (GC). Many applications use programming languages such as Java that use GC, well-known for its heavy memory use and impact on performance.
Number of instances. How many app or server instances of elastic, cloud-based applications are running at any one time affect performance. High user demand may require an application performance monitoring strategy that supports autoscaling.
Request rates. The request rate metric reflects how much traffic, including numbers of concurrent users, spikes, and inactivity, the application receives.
Response times. Average response time simply reflects whether performance is being hindered by application speed.
Application performance monitoring APM tools differ in their features, but each tool must:
- Monitor and track the response time and performance of web applications or software
- Collect performance metrics to create a performance baseline and alert administrators if variation in that baseline occurs
- Generate visual data to deepen insights into performance metrics for users
- Help to identify and fix application performance problems and changes in network behavior
Why Do We Need Application Performance Monitoring?
The best application performance monitoring systems create a single source of truth by correlating monitoring data in an APM application performance monitoring dashboard, preventing data silos. This saves the manual time of the IT team, eliminating the need to build synthetic monitors or search through individual event logs. Application performance monitoring architecture also enables a more proactive approach to customer feedback and empowers that approach with evidence.
How Does VMware NSX Advanced Load Balancer Help With Application Performance Monitoring?
The VMware NSX Advanced Load Balancer is an analytics driven L4-L7 load balancing solution that complements some of the best application performance monitoring tools, such as New Relic, AppDynamics and Dynatrace. The VMware NSX Advanced Load Balancer provides a view of the application health in the context of the network, security and end-user experience by looking at the network behavior of each application or microservice. This enables The VMware NSX Advanced Load Balancer to be analytics-driven when it comes to autoscaling load balancers as well as back-end applications.
One way to consider the difference between a traditional APM solution and The VMware NSX Advanced Load Balancer and how they work together is through the level of granularity. An APM solution is like a microscope looking at the performance of the application at the code-level – are the application’s CPU usage, storage requirements, response times within accepted norms. The VMware NSX Advanced Load Balancer looks at the application from the microscope level – with broader context within the environment. Namely, is the application using acceptable bandwidth, connecting with expected services, using the correct server resources? These indicate whether the application has been corrupted or is malfunctioning at a higher level, one which could impact other application or network services.
For more information on The VMware NSX Advanced Load Balancer’s elastic application performance monitoring system see:
- Using your Load Balancer for Application Performance Monitoring
- What do Application Performance Monitoring and Load Balancing Have in Common?
- Application Performance Monitoring and Security: Why You Shouldn’t Need a Separate APM Tool
For more on the actual implementation of load balancers, check out our Application Delivery How-To Videos.