Back before clouds, virtualization, containers, distributed applications, n-tier applications, and microservices, the IT architecture was simple. An application ran on one or more dedicated servers. Other than the operating system, the application was the only thing important running on the server.
In these simple environments, it was easy and effective to monitor how the application was interacting with the operating system and to watch whether it was using normal amounts of CPU and memory and generating normal amounts of network and storage traffic. Anomalies in these usage patterns were considered important problems for any IT operations professional skilled in the behavior of the operating systems and applications. In this “old world,” it was possible to measure and infer the health of applications by monitoring the infrastructure supporting the applications.