Monitoring of node.js applications
First Claim
1. A method for monitoring a business transaction in a node.js application, the method comprising:
- detecting a plurality of application functions associated with a business transaction in the node.js application, the application functions associated with callback registrations, callback calls, and callback completions on an application server;
assigning a transaction identifier to each callback registrations not already associated with a transaction identifier of the business transaction;
setting and updating a contextual state for the application functions based on the detection of the callback registrations, callback calls and callback completions;
using the transaction identifier, tracing the application functions including resources associated with carrying out the application functions;
collecting runtime data indicative of performance of the business transaction associated with the traced application functions;
storing the runtime data indicative of the performance of the business transaction associated with the traced application functions;
receiving event information at a tracer module; and
stitching together the resources associated with carrying out the traced application functions associated with the node.js application by stitching together the event information and the assigned transaction identifier to determine a virtual thread and runtime data for each virtual thread associated with the node.js application.
3 Assignments
0 Petitions
Accused Products
Abstract
A system creates and monitors virtual threads within a node.js application. Callbacks executing within an event loop for a node.js system are identified and may be traced. The callbacks are associated with a context, and resources associated with execution flow during each context may be identified. Callback registrations, callback calls, and callback completion messages may each be detected and recorded. Each registration, call, and completion message is associated with a virtual thread or other transaction identifier. The timing information for each virtual thread and other resource usage for each context may then be identified, stitched together for distributed transactions and reported to a user to provide more detail for node.js application processing.
26 Citations
27 Claims
-
1. A method for monitoring a business transaction in a node.js application, the method comprising:
-
detecting a plurality of application functions associated with a business transaction in the node.js application, the application functions associated with callback registrations, callback calls, and callback completions on an application server; assigning a transaction identifier to each callback registrations not already associated with a transaction identifier of the business transaction; setting and updating a contextual state for the application functions based on the detection of the callback registrations, callback calls and callback completions; using the transaction identifier, tracing the application functions including resources associated with carrying out the application functions; collecting runtime data indicative of performance of the business transaction associated with the traced application functions; storing the runtime data indicative of the performance of the business transaction associated with the traced application functions; receiving event information at a tracer module; and stitching together the resources associated with carrying out the traced application functions associated with the node.js application by stitching together the event information and the assigned transaction identifier to determine a virtual thread and runtime data for each virtual thread associated with the node.js application. - View Dependent Claims (2, 7, 8, 9)
-
-
3. The method of 1, wherein the application functions include an entry point, HTTP request, or a related backend call.
-
4. The method of 1, wherein the application functions are detected by intercepting the callbackregistrations.
-
5. The method of 1, wherein the event information is reported upon detecting a callback call.
-
6. The method of 1, wherein the event information is reported upon detecting a callback completion.
-
10. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform operations for monitoring a business transaction in a node.js application, the operations including:
-
detecting a plurality of application functions associated with a business transaction in the node.js application, the application functions associated with callback registrations, callback calls, and callback completions on an application server; assigning a transaction identifier to each callback registrations not already associated with a transaction identifier of the business transaction; setting and updating a contextual state for the application functions based on the detection of the callback registrations, callback calls and callback completions; using the transaction identifier, tracing the application functions including resources associated with carrying out the application functions; collecting runtime data indicative of performance of the business transaction associated with the traced application functions; storing the runtime data indicative of the performance of the business transaction associated with the traced application functions; receiving event information at a tracer module; and stitching together the resources associated with carrying out the traced application functions associated with the node.js application by stitching together the event information and the assigned transaction identifier to determine a virtual thread and runtime data for each virtual thread associated with the node.js application. - View Dependent Claims (11, 16, 17, 18)
-
-
12. The non-transitory computer readable storage medium of 10, wherein the application functions include an entry point, HTTP request, or a related backend call.
-
13. The non-transitory computer readable storage medium of 10, wherein the application functions are detected by intercepting the callback registrations.
-
14. The non-transitory computer readable storage medium of 10, wherein the event information is reported upon detecting a callback call.
-
15. The non-transitory computer readable storage medium of 10, wherein the event information is reported upon detecting a callback completion.
-
19. A system for monitoring a business transaction, comprising:
-
an application server including one or more processors and memory; and one or more modules stored in memory and executable by at least one of the one or more processors to monitor a business transaction in a node.js application including; detect a plurality of application functions associated with a business transaction in the node.js application, the application functions associated with callback registrations, callback calls, and callback completions on an application server; assign a transaction identifier to each callback registrations not already associated with a transaction identifier of the business transaction; set and updating a contextual state for the application functions based on the detection of the callback registrations, callback calls and callback completions; use the transaction identifier to trace the application functions including resources associated with carrying out the application functions; collect runtime data indicative of performance of the business transaction associated with the traced application functions; store the runtime data indicative of the performance of the business transaction associated with the traced application functions; receive event information at a tracer module; and stitch together the resources associated with carrying out the traced application functions associated with the node.js application by stitching together the event information and the assigned transaction identifier to determine a virtual thread and runtime data for each virtual thread associated with the node.js application. - View Dependent Claims (20, 25, 26, 27)
-
-
21. The system of 19, wherein the application functions include an entry point, HTTP request, or a related backend call.
-
22. The system of 19, wherein the one or more modules stored in memory and executable by at least one of the one or more processors to detect the application functions by intercepting the callback registrations.
-
23. The system of 19, wherein the one or more modules stored in memory are executable by at least one of the one or more processors to report the event information upon detecting a callback call.
-
24. The system of 19, wherein the one or more modules stored in memory are executable by at least one of the one or more processors to report the event information upon detecting a callback completion.
Specification