The Key To Useful Application Performance Monitoring -- Service First
from the everything-as-a-service dept
In my experience, the keystone to deploying useful application performance monitoring is to first define and build a hierarchical model of the target application as a service. We have long left a world of stand alone servers and atomic applications, and good performance monitoring solutions should be designed from the ground up to account for each technology involved in the application's delivery.
Naturally the scope of data and events involved in monitoring a modern application's performance as a service can quickly become unwieldy, with information being collated and (hopefully) aggregated from a large number of distinct technologies. To further add to the complexity, the software systems used to target and extract data will also vary from technology to technology. While one might choose to license a single vendor's "monolithic framework" instead of programming solutions internally, the vendor's code to gather data from a router will be distinct from the code used to gather storage information, and so on. Contrary to what marketing claims may be made, there is no "magic button" in any monitoring product that will sort out the relevance of data coming from a subsystem as it relates to an application as it is implemented in the environment.
Defining a common named hierarchy of the application's involved technology upfront enables engineers to systematically "tag" relevant data and events coming from a multitude of sources and correlate them to the appropriate application service (or in some cases... multiple applications). Correlation is the key to all-inclusive monitoring, as information without context is useless.
If the company has not already started using named hierarchies elsewhere in monitoring, it might be a good ideas to develop a basic hierarchical naming standard in the open and let other parties who will (or should) be using the standard provide input to the project. Once an environment starts successfully treating and monitoring one application as a service, there will be a drive from all application owners to do the same for them.