IP Library Granted Patent US 9,838,488
Granted Patent B2
US 9,838,488 · App. 14/701,414 · Granted Dec 5, 2017

Agent asynchronous transaction monitor

Inventors: Michael Margulis (San Francisco, CA); Ryan Ericson (San Francisco, CA); Alexander Fedotyev (San Francisco, CA); Sanjay Nagaraj (San Francisco, CA)
Assignee: AppDynamics LLC
H04L67/22
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,838,488
App. No.
14/701,414
Granted
Dec 5, 2017
Kind
B2
Abstract

A system monitors asynchronous transactions over a different number of threads by capturing data and tracking transitions in the particular framework. Once an asynchronous method is called, the transition framework may be tracked while executing a asynchronous method call. Within a .NET framework, monitoring may include tracking a task object return, continuation method calls at the completion of a method, and tracking the continuation method as it executes other code. The asynchronous method may then be correlated within a business transaction using the returned task object data.

Claims (43)

1. A method for monitoring an asynchronous transaction, comprising:

detecting, by an agent executing on a server, an asynchronous method call within an application;

determining whether to monitor the detected asynchronous method call;

responsive to the determining, instrumenting the asynchronous method call to be monitored;

responsive to the instrumenting, tracking, by the agent, asynchronous .NET framework transitions initiated by the instrumented asynchronous method call;

obtaining asynchronous .NET framework transition data based on the tracking; and

correlating the asynchronous .NET framework transition data with a distributed business transaction performed at least in part on the server.

2. The method of claim 1 , wherein the instrumenting includes performing byte code instrumentation on the asynchronous method determined to be monitored.

3. The method of claim 1 , wherein the asynchronous method determined to be monitored includes a continuation method.

4. The method of claim 1 , wherein tracking includes collecting data associated with a returned task object sent in response to the asynchronous method call.

5. The method of claim 1 , wherein correlating includes identifying a method that received returned task object.

6. The method of claim 1 , wherein correlating includes correlating asynchronous method and the method that called the asynchronous method.

7. The method of claim 1 , further comprising reporting performance of a distributed business transaction that includes a call to the asynchronous method.

8. The method of claim 1 , wherein the instrumenting includes creating a new method that encompasses the asynchronous method to be monitored within a wrapper.

9. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for monitoring an asynchronous transaction, the method comprising:

detecting, by an agent executing on a server, an asynchronous method call within an application;

determining whether to monitor the detected asynchronous method call;

responsive to the determining, instrumenting the asynchronous method call to be monitored;

responsive to the instrumenting, tracking, by the agent, asynchronous .NET framework transitions initiated by the instrumented asynchronous method call;

obtaining asynchronous .NET framework transition data based on the tracking; and

correlating the asynchronous .NET framework transition data with a distributed business transaction performed at least in part on the server.

10. The non-transitory computer readable storage medium of claim 9 , wherein the instrumenting includes performing byte code instrumentation on the asynchronous method determined to be monitored.

11. The non-transitory computer readable storage medium of claim 9 , wherein the asynchronous method determined to be monitored includes a continuation method.

12. The non-transitory computer readable storage medium of claim 9 , wherein tracking includes collecting data associated with a returned task object sent in response to the asynchronous method call.

13. The non-transitory computer readable storage medium of claim 9 , wherein correlating includes identifying a method that received returned task object.

14. The non-transitory computer readable storage medium of claim 9 , wherein correlating includes correlating asynchronous method and the method that called the asynchronous method.

15. The non-transitory computer readable storage medium of claim 9 , the method further comprising reporting performance of a distributed business transaction that includes a call to the asynchronous method.

16. A system for monitoring a business transaction, comprising:

a processor;

a memory; and

one or more modules stored in memory and executable by a processor to perform operations including:

detect, by an agent executing on a server, an asynchronous method call within an application;

determine whether to monitor the detected asynchronous method call;

responsive to the determining, instrument the asynchronous method call to be monitored;

responsive to the instrumenting, track, by the agent, asynchronous .NET framework transitions initiated by the instrumented asynchronous method call;

obtain asynchronous .NET framework transition data based on the tracking;

and correlate the asynchronous .NET framework transition data with a distributed business transaction performed at least in part on the server.

17. The system of claim 16 , wherein the one or more modules are configured to perform byte code instrumentation on the asynchronous method determined to be monitored.

18. The system of claim 16 , wherein the asynchronous method determined to be monitored includes a continuation method.

19. The system of claim 16 , wherein tracking includes collecting data associated with a returned task object sent in response to the asynchronous method call.

20. The system of claim 16 , wherein the one or more modules are configured to correlate including identify a method that received returned task object.

21. The system of claim 16 , wherein the one or more modules are configured to correlate including correlate asynchronous method and the method that called the asynchronous method.

22. The system of claim 16 , the one or more modules executable to report performance of a distributed business transaction that includes a call to the asynchronous method.

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: MARGULIS, MICHAEL; ERICSON, RYAN; FEDOTYEV, ALEXANDER; NAGARAY, SANJAY
To: APPDYNAMICS, INC
Reel/Frame 038287/0671 →
Continuity (1)
Related Publication 20160323396A1 · Nov 3, 2016