System and methods for monitoring application server performance
First Claim
1. A method of monitoring execution of a transaction that invokes a plurality of application components of an application that runs on an application server, the method comprising:
- instrumenting code of each of the plurality of application components to permit execution of each application component to be monitored on the application server;
in response to execution of the instrumented code within a thread, determining whether the thread is part of the transaction; and
when the thread is part of the transaction, tracing execution of the thread through each of the plurality of application components to measure an amount of time spent by each such application component on the transaction.
10 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.
327 Citations
17 Claims
-
1. A method of monitoring execution of a transaction that invokes a plurality of application components of an application that runs on an application server, the method comprising:
-
instrumenting code of each of the plurality of application components to permit execution of each application component to be monitored on the application server;
in response to execution of the instrumented code within a thread, determining whether the thread is part of the transaction; and
when the thread is part of the transaction, tracing execution of the thread through each of the plurality of application components to measure an amount of time spent by each such application component on the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for selectively monitoring application components on an application server, the system comprising:
-
an instrumentation component that instruments code of application components to permit execution thereof by the application server to be monitored;
a virtual machine that executes the application components on the application server;
wherein the virtual machine is configured to pass the application components to the instrumentation component for instrumentation prior to execution thereof by the virtual machine, and wherein the instrumentation component selectively instruments the application components received from the virtual machine based on configuration data that specifies which application components are to be instrumented for monitoring. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification