1. 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; receiving, by a transaction correlator residing on the server computer, the transaction event; determining, by the transaction correlator, whether the transaction event corresponds to a thread execution record residing in a transaction repository, where thread execution records includes an identifier for the host computing device, an identifier for the execution thread that caused the transaction event, and at least one transaction metric; updating, by the transaction correlator, a given thread execution record residing in the transaction repository when the transaction event corresponds to the given thread execution record; creating, by the transaction correlator, a thread execution record for the transaction event when the transaction event does not correspond to a thread execution record in the transaction repository; correlating, by an analyzer residing on the server computer, the transaction event with the host event using the identifier for the host computing device and when the thread execution record overlaps temporally with the host event, wherein the thread execution record includes an execution start time and an execution end time for the execution thread; receiving, by an infrastructure processor residing on the server computer, the host event; determining, by the infrastructure processor, whether the host event corresponds to a host record in an infrastructure repository; where host records in the infrastructure repository include an identifier for the host computing device, and at least one host metric for the host computing device; creating, by the infrastructure processor, a host record for the host event when the host event does not correspond to a host record in the infrastructure repository; creating, by the infrastructure processor, a measurement entry for each host metric encapsulated in the host event, where the measurement entries are associated with a host record in the infrastructure repository corresponding to the host event; and determining a health state for a given host metric by applying a rule set to measurement entries for the given host metric and logging the health state in the infrastructure repository.