Application Performance Monitoring (APM) is a term that is being used more and more often nowadays as developers and businesses realize how critical it can be. Essentially APM consists of tracking and analyzing the various components in a system to ensure that it is operating within acceptable parameters of performance.
Because software applications are becoming increasingly more complex, APM provides a way to monitor how all its components are interacting with each other, identify problems at an early stage, and solve them. Needless to say the APM framework itself will be vary depending on the application – which is why there is a wide range of different types of APM tools available today.
In an effort to standardize the terminology being used to describe these tools, there is a definition in place regarding the main dimensions (sometimes referred to as steps or components) in APM. The dimensions themselves consist of:
End-user experience monitoring (EUEM)
Runtime architecture discovery, modeling and display
Some APM tools are capable of automatically mapping out the components in an application and how they interact with one another. It is extremely useful in allowing events to be correlated and dependencies to be discovered – which in turn can help identify and troubleshoot problems more effectively.
Business or user-defined transaction profiling
With this type of monitoring it is possible to track specific transactions (or groups of transactions) that are defined in advance, and report on them. The reason why this type of transaction profiling is useful in APM is because it allows for more meaningful reports to be provided for business, operational or development purposes.
Component deep-dive monitoring in application context
Basically this consists of measuring and recording the internal parts of various components in an application. It can encompass a wide range of data including log management that varies depending on the type of application. The data that is gathered is normally used for troubleshooting, or may be mapped to user-defined transactions.
The exact form analytics takes may vary but at its core it is used to generate reports. Nowadays the focus is on making sure the reports that are generated are actionable, and so the data from APM tools should be correlated and compared against baselines so that they can be used to solve problems and make decisions.
Typically any given APM tool or solution will consist of a combination of these dimensions. Sometimes it is necessary to use a mix of different tools in order to properly monitor an application, through increasingly integrated APM solutions are starting to become more and more popular. Also as APM becomes more of a necessity, a shift towards more user-experience-centric APM solutions is also being seen.