US2017250890A1PendingUtilityA1

Asynchronous transactions reported as critical path

35
Assignee: NEW RELIC INCPriority: Feb 29, 2016Filed: Feb 29, 2016Published: Aug 31, 2017
Est. expiryFeb 29, 2036(~9.6 yrs left)· nominal 20-yr term from priority
H04L 43/10H04L 67/42H04L 67/32H04L 43/14H04L 67/60H04L 67/02H04L 67/01G06F 9/466G06F 11/3688H04L 67/10
35
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.