IP Library Granted Patent US 10,007,562
Granted Patent B2
US 10,007,562 · App. 15/425,233 · Granted Jun 26, 2018

Business transaction context for call graph

Inventor: Christopher Brichford (San Mateo, CA)
Assignee: Cisco Technology, Inc.
G06F9/54G06F11/30G06F11/3006G06F11/3495G06F2201/865G06F2201/87
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,007,562
App. No.
15/425,233
Granted
Jun 26, 2018
Kind
B2
Abstract

An application which utilizes a single thread is monitored and context for the individual requests and business transactions operating on that platform are provided. A wrapper is placed is around an object that calls a request. The wrapper renames a request object. Request objects are renamed with a unique name when they are called. When a call stack is sampled, the sampler will retrieve the unique name. Performance data associated with the unique name may be correlated to a business transaction and particular request as metrics are subsequently analyzed. For subsequent reporting, such as call graph reporting, the report or call graph will have requests in the context of a particular business transaction and a particular request instance. This provides more context in reporting of an business application request for frameworks that utilize as single request for multiple threads.

Claims (56)

1. A method for monitoring an application that utilizes single threaded execution, the method comprising:

renaming, by an agent on a device in a computer network, a function object with a unique name associated with a wrapper function object, the function object is configured to be called when a request for the function object is received;

receiving, by the agent, the request that includes a business transaction identifier that identifies a business transaction associated with the request;

receiving, by the agent, data including call stack data and performance data associated with the function object renamed with the unique name;

correlating, by the agent, the received data with the business transaction and the request using the unique name and the business transaction identifier; and

reporting, by the agent, the correlated data using a call graph that includes the request in context of the business transaction.

2. The method of claim 1 , wherein renaming the function object includes:

replacing a reference to the function object with the wrapper function object that references the function object using the unique name.

3. The method of claim 1 , including:

detecting the function object; and

replacing information within the detected function object.

4. The method of claim 3 , including:

placing hooks in a listen method of the detected function object to replace a callback;

retrieving the wrapper object from a pool of wrapper objects, wherein each wrapper object includes an associated unique name; and

placing the wrapper object with the associated unique name around the detected function object.

5. The method of claim 1 , including:

responsive to execution of the function object, placing the unique identifier of the wrapper object on a call stack to include the unique identifier in the call stack data.

6. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform operations for monitoring an application that utilizes single threaded execution, the operations including:

renaming a function object with a unique name associated with a wrapper function object, the function object is configured to be called when a request for the function object is received;

receiving the request that includes a business transaction identifier that identifies a business transaction associated with the request;

receiving data including call stack data and performance data associated with the function object renamed with the unique name;

correlating the received data with the business transaction and the request using the unique name and the business transaction identifier; and

reporting the correlated data using a call graph that includes the request in context of the business transaction.

7. The non-transitory computer readable storage medium of claim 6 , wherein the program is executable to rename the function object including:

replacing a reference to the function object with the wrapper function object that references the function object using the unique name.

8. The non-transitory computer readable storage medium of claim 6 , wherein the operations include:

detecting the function object; and

replacing information within the detected function object.

9. The non-transitory computer readable storage medium of claim 8 , wherein the operations include:

placing hooks in a listen method of the detected function object to replace a callback indication;

retrieving the wrapper object from a pool of wrapper objects, wherein each wrapper object includes an associated unique name; and

placing the wrapper object with the associated unique name around the detected function object.

10. The non-transitory computer readable storage medium of claim 6 , wherein the operations include:

responsive to execution of the function object, placing the unique name of the wrapper object on a call stack to include the unique name in the call stack data.

11. A system for monitoring an application, the system comprising:

a memory;

a processor; and

one or more modules stored in memory and executable by the processor to perform operations for monitoring the application that utilizes single threaded execution including:

rename a function object with a unique name associated with a wrapper function object, the function object is configured to be called when a request for the function object is received;

receive the request that includes a business transaction identifier that identifies a business transaction associated with the request;

receive data including call stack data and performance data associated with the function object renamed with the unique name;

correlating the received data with the business transaction and the request using the unique name and the business transaction identifier; and

report the correlated data using a call graph that includes the request in context of the business transaction.

12. The system of claim 11 , wherein the one or more modules is executable to rename the function object including:

replace a reference to the function object with the wrapper function object that references the function object using the unique name.

13. The system of claim 11 , wherein the call graph includes business transaction information and request information in a hierarchical format.

14. The system of claim 11 , wherein the one or more modules are executable to process the request including:

obtain the business transaction identifier from the request; and

associate the business transaction identifier with the unique name from the function object.

15. The system of claim 11 , wherein the one or more modules are executable to include the unique name on a call stack.

16. The system of claim 11 , wherein the one or more modules are executable to replace information in a listen method within the function object called in response to the request.

17. The system of claim 11 , wherein the one or more modules are executable to perform operations including:

detect the function object;

place hooks in a listen method of the detected function object to replace a callback indication;

retrieve a wrapper object from a pool of wrapper objects, wherein each wrapper object includes an associated unique name; and

place the wrapper object with the associated unique name around the detected function object.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
CHANGE OF NAME Recorded Jun 23, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 042964/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2017
From: BRICHFORD, CHRISTOPHER
To: APPDYNAMICS, INC.
Reel/Frame 041182/0274 →
Continuity (2)
Continuation 14530560 · Oct 31, 2014
Related Publication 20170269977A1 · Sep 21, 2017