Claims
- 1. A system for analyzing the operation of a web site system that comprises an application server, the system comprising:
an agent computer configured to access the web site system as a emulated user thereof to execute a transaction that invokes the application server; a probe that runs on the application server and monitors the application server during execution of the transaction, wherein the probe generates and reports data indicative of execution times of each of a plurality of application components executed by the application server as part of the transaction; and a reports server that receives said data indicative of the execution times of each of the plurality of application components, and provides a breakdown indicating an amount of time spent by each of the plurality of application components executing the transaction.
- 2. The system of claim 1, wherein the agent computer is configured to initiate execution of the transaction by sending to the web site system a request message that contains encoded data indicating that the transaction should be monitored by the probe, and wherein the probe is responsive to the encoded data by monitoring execution of the transaction on the application server.
- 3. The system of claim 1, wherein the agent computer measures and reports transaction response times associated with execution of the transaction, and the reports server presents said transaction response times in association with said breakdown, such that an operator may assess an impact of a particular application component on transaction response times experienced by web site users.
- 4. The system of claim 1, wherein the probe includes a code instrumentation component that dynamically instruments the application components at load time.
- 5. The system of claim 4, wherein the code instrumentation component selects application components to instrument based on configuration data specified by a user.
- 6. The system of claim 4, further comprising a user interface that displays a listing of application components installed on the application server, and provides functionality for an operator to select specific application components from the listing to instrument for monitoring.
- 7. The system of claim 1, wherein the data generated and reported by the probe indicates execution times of each of a plurality of methods of an application component, and the reports server displays a breakdown of time spent by each such method on the transaction.
- 8. The system of claim 1, wherein the reports server provides said breakdown separately for each of a plurality of transactions.
- 9. The system of claim 1, wherein the reports server displays within said breakdown at least the following: a servlet time, a session EJB time, and an entity EJB time.
- 10. The system of claim 1, further comprising a controller that provides functionality for assigning transactions to the agent computer, wherein the controller provides an option for a user to specify whether a transaction is to be monitored by the probe.
- 11. A method for analyzing the operation of a web site system that comprises an application server, the method comprising:
during execution of a user transaction that invokes an application on the application server, monitoring execution of the application with a probe that runs on the application server to measure execution times associated with each of a plurality of application components invoked by the user transaction, to thereby generate a set of transaction-specific time measurements; and incorporating the set of transaction-specific time measurements into a report that provides a transaction-specific breakdown of times spent by each of the plurality of application components during processing by the application server of the user transaction.
- 12. The method of claim 11, further comprising monitoring execution of the user transaction from a location external to the web site system to measure a transaction response time indicative of performance of the web site as seen by an end user, whereby the method collects web site performance data sufficient to assess an impact each of the application components has on transaction performance as seen by end users.
- 13. The method of claim 11, wherein the probe measures said execution times at a component method level.
- 14. The method of claim 11, wherein the user transaction is an agent-generated transaction that includes encoded information that causes the probe to monitor execution of the application.
- 15. The method of claim 11, wherein the user transaction is a real user transaction initiated by an actual user of the web site system.
- 16. The method of claim 11, further comprising dynamically instrumenting code of the plurality of application components to enable execution of the application components to be monitored.
- 17. The method of claim 11, wherein the breakdown displays average execution times for each of a plurality of types of application components.
- 18. A web site monitoring system that performs the method of claim 11.
- 19. 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.
- 20. The method of claim 19, wherein tracing execution of the thread through each of the plurality of application components comprises recording execution start and stop times of specific methods of the application components.
- 21. The method of claim 19, wherein determining whether the thread is part of the transaction comprises determining whether an associated transaction request message is colored.
- 22. The method of claim 19, wherein the transaction is an actual user transaction.
- 23. The method of claim 19, further comprising monitoring execution of the transaction from a location external to the application server to measure an end-user response time, whereby the method generates data sufficient to assess an impact each of the application components has on transaction performance as seen by end users.
- 24. The method of claim 19, wherein the application components are J2EE components.
- 25. The method of claim 19, wherein instrumenting the code of the plurality of application components comprises instrumenting each component as it is loaded into a memory of the application server for execution.
- 26. The method of claim 25, wherein instrumenting the code of the plurality of application components further comprises using a patched version of a Java Virtual Machine class loader to access said code when application components are loaded.
- 27. A probe software component that embodies the method of claim 19.
- 28. A system for monitoring application server performance of a deployed web site, the system comprising:
a probe that runs on an application server of the web site, wherein the probe includes functionality for selectively monitoring the execution of transactions by the application server to collect application server performance data; and an agent component that runs on a host computer that resides externally to the deployed web site, wherein the agent component is configured to initiate execution of transactions by sending transaction requests to the web site; wherein the agent component specifies that a transaction is to be monitored by the probe by including encoded information within a corresponding transaction request sent to the web site, and wherein the probe is responsive to the encoded information by monitoring execution of the transaction to generate application server performance data for the transaction.
- 29. The system of claim 28, wherein the agent component includes the encoded information within a header and/or a tag of an HTTP request message sent to the web site.
- 30. The system of claim 28, wherein the probe generates the application server performance data for the transaction at least in part by measuring execution times indicative of a time spend by each of a plurality of application components invoked by the transaction.
- 31. 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; and 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.
- 32. The system of claim 31, wherein the configuration data comprises heuristics for determining which application components are to be instrumented for monitoring.
- 33. The system of claim 31, further comprising a monitoring component that records execution start and stop times of instrumented application components executed by the virtual machine.
- 34. The system of claim 33, wherein the monitoring module records said start and stop times in association with specific user transactions to which they correspond, to thereby collect transaction-specific application server performance data.
- 35. The system of claim 31, wherein the virtual machine comprises a patched class loader class that is configured to pass code of an application component to the instrumentation component before as said application component is loaded
- 36. A method 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.
- 37. The method of claim 36, wherein instrumenting said code comprises adding calls to each of a plurality of methods of the Java component, to thereby provide functionality for monitoring execution times of said methods.
- 38. The method of claim 36, wherein instrumenting said code comprises adding functionality for detecting when the Java component is invoked by a colored transaction request message.
- 39. The method of claim 36, wherein instrumenting said code comprises adding functionality for reporting transaction identifiers of transactions that invoke the Java component, to thereby allow said execution times to be associated with transactions to which they correspond.
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Appl. No. 60/415,697, filed Oct. 2, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60415697 |
Oct 2002 |
US |