Traditionally, the acronym APM has been used to refer to the term application performance management. However, in recent years, it also refers, perhaps more correctly, to application performance monitoring. In Wikipedia terms, "APM strives to detect and diagnose complex application performance problems to maintain an expected level of service."
By definition, APM or Application Performance Monitoring enables organizations to monitor the performance metrics of their business critical applications, receive timely alerts in case of performance issues, and generate reports for periodic performance analysis.
As per software analyst firm Gartner, an APM tool should meet three main functional dimensions:
This aspect of APM focuses on end user experience based on availability and performance of business applications/services. This comprises of real user monitoring and synthetic transaction monitoring, typically using digital agents that interact with business applications to collect transactional information and helps pinpoint digital experience issues.
Another inevitable functionality of any APM software. This comprises of automated discovery of application servers, web servers, micro services as well as application platforms such as containers and service mesh, as well as in-depth analysis of application transactions using byte-code instrumentation and/or distributed tracing to pinpoint application errors. Most IT teams evaluate the capabilities in this segment before making a purchase decision.
Gartner defines this dimension as involving domain-centric artificial intelligence for IT operations functions using AI and Machine Learning (ML). APM tools should employ performance alerting, event correlation, and root cause analysis. Also, includes tracking performance anomalies for HTTP/S transactions supported by Java and .NET application servers.
Gartner encapsulates an APM software with these dimensions. However, one must realize that digital application monitoring needs vary hugely between organizations and thus APM requirements are defined differently in different contexts. While some organizations make do with a combination of multiple tools for monitoring, alerting and reporting, an ideal APM software presents a unified console for all monitoring requirements. Before making a choice of APM solutions, IT and DevOps professionals in the APM sphere should thoroughly analyse the specific capabilities given below for the right application performance results.
When we say KPIs, we are talking about the application performance metrics such as response times, requests per minute, thread and session details, CPU utilization, disk and memory utilization, error states, etc. This includes the first set of essential application and infrastructure metrics you check in order to measure the efficiency of your apps. Your APM system should be able to present this data accurately at regular periodic intervals.
Most APM solutions provide visibility all the way till the level of code to help discover problems that might otherwise go unnoticed until an end user reports it. Your APM solution should be able to take snapshots of individual transaction traces and allow you to drill down to the SQL queries to detect slow running queries. With the help of distributed transaction tracing, the APM solution should be able to track calls made from one service to another across various platforms and languages, especially if your application is running in a micro services environment. Your DevOps team should probably be able to tell how valuable these type of insights could be in the application development phase.
Think about these questions for a moment.
If your APM software answers these questions adequately, you will have fewer complaints from customers about service delivery. With the help of synthetic transactions that simulate user behaviour across your webpage/app, you should be able to locate any discrepancies in their performance (page load time, 404 errors, etc.) before deploying your apps. This also ensures that the performance of your apps once deployed when accessed from different locations of the globe deliver the same consistent performance.
Your APM software might be able to monitor a variety of applications and frameworks but what's more important is to evaluate the tool in terms of individual organizational business needs. For e.g. Your APM tool might help you monitor your web server and the underlying database performance stats; however, does it perform application performance management of your in-house custom web applications? An ideal APM tool should be flexible and support all the necessary monitorable touch points in an IT setup.
As mentioned earlier, ideal APM tools should pack the essentials i.e. all round monitoring, alerting and comprehensive reporting, eliminating the hassle of having to deal with multiple tools to measure and optimize application performance.
ADDM expands to Application Discovery and Dependency mapping. Your APM tool should not just automatically discover all applications and servers in your network, it should also be able to categorize them (DBs, VMs, Servers, etc.) and provide the user the ability to visualize application interdependencies. This feature in particular helps save time that is usually wasted trying to pinpoint a bottleneck in a horde of apps.
Alerting is among one of the primary requirements in APM tools. The thresholds for these alerts should be configurable for individual metrics as well as the application as a whole. These alerts facilitate faster identification of application performance issues. IT teams should be able to receive these alerts through a variety of channels - email, SMS, Slack messages, incidents in an ITSM tool such as ServiceNow, etc. However, these alerts should also be able to execute pre-configured actions for faster troubleshooting. Executing corrective scripts or batch files, restarting a VM or container instance, Executing an MBean operation, generating heap dump/thread dump/Garbage collection, etc. can be a few examples of automated actions.
It is incredibly exhaustive to manage all applications with the same level of attention. Imagine having several hundred servers/apps added to your monitoring tool; with an organized dashboard that presents statistics like recent critical alerts, busy servers, current availability of servers, etc. You will clearly know which server needs your attention first. Of course, the most meaningful statistics from a point of business value might vary between organizations, which is why the dashboard should offer the flexibility of customization.
Reports are an important means of periodically analyzing and sharing insights about the performance of your applications. This analysis can help identify under and over utilized servers, understand APM performance trends, predict future trends based on historical data, and thereby plan resource reallocation and infrastructure upgrades. Without the right application analytics, any APM instance is incomplete - irrespective of small, medium or enterprise applications.
One of the most important factors in choosing APM tools, almost as important (or more?) as the capabilities of it, is the price at which they come. Typically with any vendor, the price for monitoring a small network of a few hundred servers might not seem too much. However, one has to keep in mind the eventual costs that will add up once the organizations decides to increase their infrastructure capacity. Will the price of scaling take a toll on your budget and hinder digital transformation? That's worth pondering.
While most enterprise APM tools cover several of the aspects discussed in this page, the solution that best suits your organizational needs is one that you have evaluated yourself in your custom monitoring environment. Having said that, ManageEngine Applications Manager is one such good APM solution with all the monitoring capabilities (monitoring, alerting, reports, dashboards, etc.) at an unbelievably affordable price.