A computer-implemented method for monitoring application performance in a production virtual machine from an instrumentation virtual machine, the method comprising: receiving, by a performance monitoring system, the instrumentation virtual machine that includes software instructions for monitoring application performance in the production virtual machine; registering the instrumentation virtual machine with a hypervisor, wherein the hypervisor enforces security authorizations related to capturing trace information, wherein registering comprises providing authentication information so that the hypervisor allows the instrumentation virtual machine to receive trace information from the production virtual machine, and wherein the trace information provides inputs, outputs, performance characteristics, operation times, and other information for diagnosing problems or ensuring correct operation of the application; reserving one or more resources for the instrumentation virtual machine to use to capture and process trace information comprising receiving from the hypervisor assignment of a dedicated physical resource including dedicated processor resources for the instrumentation virtual machine to use, wherein the dedicated physical resource assigned to the instrumentation virtual machine is not associated with the production virtual machine and is isolated from use by the production virtual machine; creating a shared communication channel between the instrumentation virtual machine and the production virtual machine through which the instrumentation virtual machine receives trace information from the production virtual machine; inserting one or more probes in the production virtual machine for intercepting one or more activities related to events occurring within the production virtual machine, wherein inserting the one or more probes comprises overwriting normal tracing application programming interfaces, APIs, in the production virtual machine with one or more hooks that reroute trace information to the instrumentation virtual machine; and activating tracing to begin receiving trace information captured within the production virtual machine and communicating the trace information to the instrumentation virtual machine, wherein activating tracing comprises starting the production virtual machine, starting the production application, starting the instrumentation virtual machine, and notifying the hypervisor that the instrumentation virtual machine is ready to receive trace information, wherein the preceding steps are performed by at least one processor. receiving, by a performance monitoring system, the instrumentation virtual machine that includes software instructions for monitoring application performance in the production virtual machine; registering the instrumentation virtual machine with a hypervisor, wherein the hypervisor enforces security authorizations related to capturing trace information, wherein registering comprises providing authentication information so that the hypervisor allows the instrumentation virtual machine to receive trace information from the production virtual machine, and wherein the trace information provides inputs, outputs, performance characteristics, operation times, and other information for diagnosing problems or ensuring correct operation of the application; reserving one or more resources for the instrumentation virtual machine to use to capture and process trace information comprising receiving from the hypervisor assignment of a dedicated physical resource including dedicated processor resources for the instrumentation virtual machine to use, wherein the dedicated physical resource assigned to the instrumentation virtual machine is not associated with the production virtual machine and is isolated from use by the production virtual machine; creating a shared communication channel between the instrumentation virtual machine and the production virtual machine through which the instrumentation virtual machine receives trace information from the production virtual machine; inserting one or more probes in the production virtual machine for intercepting one or more activities related to events occurring within the production virtual machine, wherein inserting the one or more probes comprises overwriting normal tracing application programming interfaces, APIs, in the production virtual machine with one or more hooks that reroute trace information to the instrumentation virtual machine; and activating tracing to begin receiving trace information captured within the production virtual machine and communicating the trace information to the instrumentation virtual machine, wherein activating tracing comprises starting the production virtual machine, starting the production application, starting the instrumentation virtual machine, and notifying the hypervisor that the instrumentation virtual machine is ready to receive trace information,