System and methods for monitoring application server performance
First Claim
1. A method, executing on hardware, of instrumenting Java components installed on an application server in order to enable the Java components to be monitored, the method comprising:
- adding a patch to a class loader class of a Java virtual machine installed on the application server, wherein the patch causes the class loader class to pass Java components to an instrumentation component when said Java components are loaded by the Java virtual machine;
receiving, from a patched version of said class loader class, code of a Java component to be loaded by the Java virtual machine; and
with the instrumentation component, instrumenting said code of the Java component to add functionality for tracking execution times;
wherein instrumenting said code comprises adding functionality for detecting when the Java component is invoked by a colored transaction request, the colored transaction request denoting that the colored transaction request is generated by an agent rather than generated by a real user so overhead associated with tracking the execution times is not incurred with respect to transactions generated by real users.
9 Assignments
0 Petitions
Accused Products
Abstract
A monitoring system monitors the amount of time spent by specific application components, such as Java components, during execution of specific web site transactions. A probe that runs on an application server initially instruments these components (preferably at component load time) to add code for tracking execution start and stop times. When a monitored transaction is executed by the application server, the probe measures the execution times of the invoked components—preferably at the component method level. The resulting measurement data is reported to a reports server, and is used to provide transaction-specific breakdowns of the amount of time spent by each instrumented component, and optionally each instrumented method within such components. In one embodiment, the probe only monitors transactions initiated by agent-generated transaction request messages that are marked or “colored” for monitoring, and thus ignores transactions initiated by actual users.
-
Citations
17 Claims
-
1. A method, executing on hardware, of instrumenting Java components installed on an application server in order to enable the Java components to be monitored, the method comprising:
-
adding a patch to a class loader class of a Java virtual machine installed on the application server, wherein the patch causes the class loader class to pass Java components to an instrumentation component when said Java components are loaded by the Java virtual machine; receiving, from a patched version of said class loader class, code of a Java component to be loaded by the Java virtual machine; and with the instrumentation component, instrumenting said code of the Java component to add functionality for tracking execution times; wherein instrumenting said code comprises adding functionality for detecting when the Java component is invoked by a colored transaction request, the colored transaction request denoting that the colored transaction request is generated by an agent rather than generated by a real user so overhead associated with tracking the execution times is not incurred with respect to transactions generated by real users. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
Specification