IP Library Granted Patent US 9,912,522
Granted Patent B2
US 9,912,522 · App. 14/699,776 · Granted Mar 6, 2018

Automatic task tracking

Inventors: Vinay Srinivasaiah (San Carlos, CA); Sanjay Nagaraj (Dublin, CA)
Assignee: Cisco Technology, Inc.
H04L41/046G06F9/46G06F11/00G06F11/301G06F11/3006G06F11/3495H04L41/5058H04L67/02G06F2201/87G06F2201/875
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 9,912,522
App. No.
14/699,776
Granted
Mar 6, 2018
Kind
B2
Abstract

The present technology correlates tasks between multiple threads of an application. A payload consisting of a task object may be identified as part of a method. Identification of the task object may be performed using instrumentation or some other method. Once the task object is identified, the payload may be instrumented to track the task object or payload and correlate the task object with other executing threads. Instrumenting the payload may include determining the constructor of the task object and instrumenting the task object constructors to determine what creates the task object. Once the source of a task object or payload is determined, the current thread having the task object as a parameter and another thread which creates the task may be tied together as part of a business transaction.

Claims (47)

1. A method for tracking a task in a distributed business transaction, comprising:

detecting, by an agent executed by a server, a thread that is not associated with any business transaction, wherein the thread is executed as part of an application associated with the distributed business transaction;

in response to detecting the thread, identifying, by the agent, a set of payloads in the thread;

filtering, by the agent, the set of payloads to identify one or more payloads of the set of payloads to be tracked;

identifying, by the agent, a constructor associated with each of the one or more payloads;

instrumenting, by the agent, each constructor of the one or more payloads;

based on the instrumenting, identifying, by the agent, whether any other thread of an instrumented constructor constructs a task object associated with the filtered payload; and

correlating, by the agent, the detected thread to a business transaction assigned to the other threads associated with the filtered payload.

2. The method of claim 1 , wherein identifying the set of payloads includes collecting stack trace information.

3. The method of claim 2 , wherein identifying the set of payloads includes identifying a chain of calls from the stack trace information.

4. The method of claim 3 , further comprising instrumenting potential entry point methods in the chain of calls associated with the stack trace information.

5. The method of claim 4 , wherein a potential entry point and the task object of the detected thread are correlated after a user approves a proposed correlation of the potential entry point and the task object.

6. The method of claim 1 , further comprising:

determining there is no correlation between any one of the set of payloads and any task; and

naming a business transaction after a part of a call chain associated with the set of payloads.

7. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable as an agent by a processor to perform a method for tracking a task in a distribute business transaction, the method comprising:

detecting a thread that is not associated with any business transaction, wherein the thread is executed as part of an application associated with the distributed business transaction;

in response to detecting the thread, identifying a set of payloads in the thread;

filtering the set of payloads to identify one or more payloads of the set of payloads to be tracked;

identifying a constructor associated with each of the one or more payloads;

instrumenting each constructor of the one or more payloads;

based on the instrumenting, identifying whether any other thread of an instrumented constructor constructs a task object associated with the filtered payload; and

correlating the detected thread to a business transaction assigned to the other threads associated with the filtered payload.

8. The non-transitory computer readable storage medium of claim 7 , wherein identifying the set of payloads includes collecting stack trace information.

9. The non-transitory computer readable storage medium of claim 8 , wherein identifying the set of payloads includes identifying a chain of calls from the stack trace information.

10. The non-transitory computer readable storage medium of claim 9 , the method further comprising instrumenting potential entry point methods in the chain of calls associated with the stack trace information.

11. The non-transitory computer readable storage medium of claim 10 , wherein the potential entry point and task object are correlated after a user approves a proposed correlation of the potential entry point and task object.

12. The non-transitory computer readable storage medium of claim 7 , further comprising:

determining there is no correlation between any one of the set of payloads and any task; and

naming a business transaction after a part of a call chain associated with the set of payloads.

13. A system for tracking a task in a distributed business transaction, comprising:

a server including a memory and a processor; and

one or more modules stored in the memory and executed by the processor, wherein the one or more modules include an agent configured:

detect a thread that is not associated with any business transaction, wherein the thread is executed as part of an application associated with the distributed business transaction;

in response to detecting the thread, identify a set of payloads in the thread;

filter the set of payloads to identify one or more payloads of the set of payloads to be tracked;

identify a constructor associated with each of the one or more payloads;

instrument each constructor of the one or more payloads;

based on the instrumentation, identify whether any other thread of an instrumented constructor constructs a task object associated with the filtered payload; and

correlate the detected thread to a business transaction assigned to the other threads associated with the filtered payload.

14. The system of claim 13 , wherein identifying the set of payloads includes collecting stack trace information.

15. The system of claim 14 , wherein identifying the set of payloads includes identifying a chain of calls from the stack trace information.

16. The system of claim 15 , the one or more modules executable to instrument potential entry point methods in the chain of calls associated with the stack trace information.

17. The system of claim 16 , wherein the potential entry point and the task object are correlated after a user approves a proposed correlation of the potential entry point and task object.

18. The system of claim 13 , the one or more modules executable to:

determine there is no correlation between any one of the set of payloads and any task; and

name a business transaction after a part of a call chain associated with the set of payloads.

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 Apr 14, 2016
From: NAGARAJ, SANJAY; SRINIVASAIAH, VINAY
To: APPDYNAMICS, INC
Reel/Frame 038287/0920 →
Continuity (1)
Related Publication 20160323362A1 · Nov 3, 2016