Asynchronous transactions reported as critical path
Abstract
An agent executed by a computer identifies a critical path of a transaction in a web application. The transaction includes a plurality of methods each representing an operation of the application and asynchronously executed by a server between a beginning of the transaction and an end of the transaction. The agent receives metrics for the transaction, which include identifiers of each executed method and specify relationships between the transaction methods. Based on the received metrics, the agent identifies a method completed at the end of the transaction. Based on the relationships between the methods, the agent determines one or more other methods preceding the identified method in the transaction and affecting a duration of the transaction. The determined methods and the method completed at the end of the transaction are identified as a critical path. Identifiers of the methods on the critical path are sent for display to a user.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for identifying a critical path of a transaction in a web application, the method comprising:
receiving, by a computer, metrics for a transaction in a web application, the transaction including a plurality of transaction methods, each method representing an operation of the web application asynchronously executed by a server between a beginning of the transaction and an end of the transaction, the metrics including identifiers of each executed transaction method and specifying relationships between the transaction methods; identifying, by the computer and based on the received metrics, a transaction method of the plurality of transaction methods that is completed at the end of the transaction; determining based on the relationships between the transaction methods, one or more other transaction methods preceding the identified method in the transaction and affecting a duration of the transaction; identifying the determined transaction methods and the transaction method completed at the end of the transaction as a critical path of the transaction; and sending identifiers of the transaction methods on the critical path for display to a user.
2 . The method of claim 1 , wherein the transaction comprises a plurality of threads of execution each including one or more of the plurality of transaction methods.
3 . The method of claim 2 , wherein determining the one or more other transaction methods comprises, for a transaction method on the critical path:
identifying based on the metrics, a beginning of the transaction method or a relationship to the transaction method by an earlier method in the transaction; responsive to identifying the beginning of the transaction method, determining a next transaction method on the thread of execution including the transaction method as a next transaction method on the critical path; responsive to identifying the relationship between the transaction method and the earlier transaction method, determining the earlier transaction method is a next transaction method on the critical path.
4 . The method of claim 3 , wherein the relationship between the transaction method and the earlier transaction method comprises the earlier transaction method blocking the thread of execution including the transaction method.
5 . The method of claim 1 , wherein the beginning of the transaction corresponds to a time the server received a request associated with the web application, and wherein the end of the transaction corresponds to a time the server transmitted a response to the request.
6 . The method of claim 1 , further comprising:
injecting monitoring code into the web application, the monitoring code when executed generating the metrics.
7 . The method of claim 1 , wherein the metrics further include start times of each transaction method, and wherein the method further comprises:
determining an execution time of each transaction method on the critical path based on the start times.
8 . The method of claim 7 , wherein sending the identifiers on the transaction methods of the critical path for display to a user comprises:
generating a report for display to the user including the identifiers of the transaction methods on the critical path and the execution times of the transaction methods on the critical path.
9 . The method of claim 7 , further comprising:
calculating a mean execution time of each transaction method on the critical path over a plurality of iterations of the transaction; and generating a report for display to the user including the identifiers of the transaction methods on the critical path and the mean execution times.
10 . A non-transitory computer readable storage medium storing executable computer program instructions, the instructions when executed by a processor causing the processor to:
receive metrics for a transaction in a web application, the transaction comprising a plurality of transaction methods each representing an operation of the web application and asynchronously executed by a server between a beginning of the transaction and an end of the transaction, the metrics including identifiers of each executed transaction method and specifying relationships between the transaction methods; identify, based on the received metrics, a transaction method of the plurality of transaction methods that is completed at the end of the transaction; determine based on the relationships between the transaction methods, one or more other transaction methods preceding the identified method in the transaction and affecting a duration of the transaction; identify the determined transaction methods and the transaction method completed at the end of the transaction as a critical path of the transaction; and send identifiers of the transaction methods on the critical path for display to a user.
11 . The non-transitory computer readable storage medium of claim 10 , wherein the transaction comprises a plurality of threads of execution each including one or more of the plurality of transaction methods.
12 . The non-transitory computer readable storage medium of claim 11 , wherein determining the one or more other transaction methods comprises, for a transaction method on the critical path:
identifying based on the metrics, a beginning of the transaction method or a relationship to the transaction method by an earlier method in the transaction; responsive to identifying the beginning of the transaction method, determining a next transaction method on the thread of execution including the transaction method as a next transaction method on the critical path; responsive to identifying the relationship between the transaction method and the earlier transaction method, determining the earlier transaction method is a next transaction method on the critical path.
13 . The non-transitory computer readable storage medium of claim 12 , wherein the relationship between the transaction method and the earlier transaction method comprises the earlier transaction method blocking the thread of execution including the transaction method.
14 . The non-transitory computer readable storage medium of claim 10 , wherein the beginning of the transaction corresponds to a time the server received a request associated with the web application, and wherein the end of the transaction corresponds to a time the server transmitted a response to the request.
15 . The non-transitory computer readable storage medium of claim 10 , wherein the instructions are further executable to cause the processor to:
inject monitoring code into the web application, the monitoring code when executed generating the metrics.
16 . The non-transitory computer readable storage medium of claim 10 , wherein the metrics further include start times of each transaction method, and wherein the instructions are further executable to cause the processor to:
determining an execution time of each transaction method on the critical path based on the start times.
17 . The non-transitory computer readable storage medium of claim 16 , wherein sending the identifiers on the transaction methods of the critical path for display to a user comprises:
generating a report for display to the user including the identifiers of the transaction methods on the critical path and the execution times of the transaction methods on the critical path.
18 . The non-transitory computer readable storage medium of claim 16 , further comprising:
calculating a mean execution time of each transaction method on the critical path over a plurality of iterations of the transaction; and generating a report for display to the user including the identifiers of the transaction methods on the critical path and the mean execution times.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.