Application performance monitoring (APM) is software designed to help IT administrators ensure that the applications users work with meet performance standards and provide a quality user experience.
Application performance monitoring tools provide administrators with the data they need to quickly discover, isolate and solve problems that can negatively affect an application's performance. APM tools track an application's performance over time and help IT professionals understand the effect that different dependencies -- the systems that applications rely on to function properly -- have on an application's performance.
IT professionals can use the performance metrics, which an APM tool can gather from a particular 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.
Most APM tools include the ability to combine data from disparate monitoring silos and correlate them through log files, hardware statistics and network throughput usage reports. The information is often displayed in a dashboard that makes it easier for IT professionals to read data logs, which saves them from having to perform memory-dependent and error-prone manual correlation and analysis.
What it measures
APM tools gather and quantify data from almost anything that plays a role in an application's performance. At the foundation, application performance monitoring tools look at the application's hosting platform, mining information on process utilization, 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, APMs monitor 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. An error can occur when there is not enough memory for an application to access, for example. 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 can 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 avoid this issue by monitoring all the servers at once to find out where a problem may be.
Using it effectively
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.
There is also cloud application performance monitoring, which focuses on tracking the performance of applications based in private or hybrid cloud deployments. The cloud introduces a host of additional dependencies into application performance, even when applications aren't based in the cloud themselves.
For instance, APM 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.
The APM market has many options, including AppDynamics, CA Technologies, Datadog, SolarWinds and Splunk. The AppDynamics offering monitors the entire infrastructure stack, includes code-level diagnostics and allows IT to monitor users across platforms. CA Technologies has a root cause analysis tool IT can use to identify the source of a problem in the code. Datadog has a cloud-based APM 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-based applications. Splunk provides log-based monitoring that includes log aggregation and analytics.
Other options on the market are Dynatrace, Grafana, LogicMonitor, Nagios, New Relic, Sensu and Stackify.