A computer-implemented method for monitoring performance of an application executing on a host computing device, comprising:
- generating, by a transaction agent instrumented in the application, a transaction event caused by execution of the application, where the transaction event includes an identifier for the host computing device, an identifier for an execution thread that caused the transaction event, and at least one transaction metric indicative of application performance;
- sending, by the transaction agent, the transaction event across a network to a server computer located remotely from the host computing device;
- generating, by a host agent executing on the host computing device, a host event, where the host event includes the identifier for the host computing device and at least one host metric indicative of utilization of a computing resource of the host computing device during execution of the application;
- sending, by the host agent, the host event across the network to the server computer;
- and
- correlating, by an analyzer residing on the server computer, the transaction event with the host event using the identifier for the host computing device.