For as long as there have been important applications, there have been Application Performance Management tools for monitoring these applications. APM tools have gone through two very distinct paths of evolution. The first path involved tools that really monitored the operating system that the applications ran on, and looked at interactions between the application and the OS in the form of abnormal resource utilization platters to find problems with the operation of the application. These tools were typically application agnostic, and supported every application that ran on the operating system that the tool supported. They therefore offered a great deal of breadth, but were not able to look deeply into applications to find problems within the applications themselves.