IP Library Granted Patent US 10,165,074
Granted Patent B2
US 10,165,074 · App. 15/660,304 · Granted Dec 25, 2018

Asynchronous custom exit points

Inventors: Sanjay Nagaraj (San Francisco, CA); Ryan Ericson (San Francisco, CA); Alexander Fedotyev (San Francisco, CA)
Assignee: Cisco Technology, Inc.
H04L67/22H04L67/02
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,165,074
App. No.
15/660,304
Granted
Dec 25, 2018
Kind
B2
Abstract

The present technology may monitor an asynchronous transaction based on a custom exit point. Once an asynchronous method to be monitored has been identified, the transition framework may be tracked while executing the asynchronous method call. Within a .NET framework, monitoring may include tracking a task object, 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 (50)

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

receiving, by an agent executing on a server, a selection of a back-end calling method to monitor;

determining whether the received selection of the method to monitor is an asynchronous method;

responsive to the determining, instrumenting the asynchronous method call to monitor by injecting intermediate language and a map into a .NET framework;

responsive to the instrumenting, monitoring, by the agent, asynchronous framework initiated by the instrumented asynchronous method call;

obtaining asynchronous framework data based on the monitoring; and

correlating the back-end calling method 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 instrumenting.

3. The method of claim 1 , wherein correlating includes:

using the obtained asynchronous framework data to correlate threads handling the asynchronous method and a task object executed as part of the asynchronous method.

4. The method of claim 1 , wherein the monitoring the asynchronous framework includes:

detecting a task object associated with the asynchronous method; and

instrumenting the task object.

5. The method of claim 4 , further comprising:

correlating different threads associated with the asynchronous business transaction using the task object instrumentation.

6. The method of claim 5 , wherein the correlating different threads associated with the asynchronous business transaction using the task object instrumentation includes:

using an identifier associated with a call sent by the task object to the back-end obtained from the different threads associated with the asynchronous business transaction.

7. 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:

receiving, by an agent executing on a server, a selection of a back-end calling method to monitor;

determining whether the received selection of the method to monitor is an asynchronous method;

responsive to the determining, instrumenting the asynchronous method call to monitor by injecting intermediate language and a map into a .NET framework;

responsive to the instrumenting, monitoring, by the agent, asynchronous framework initiated by the instrumented asynchronous method call;

obtaining asynchronous framework data based on the monitoring; and

correlating the back-end calling method with a distributed business transaction performed at least in part on the server.

8. The non-transitory computer readable storage medium of claim 7 , wherein the instrumenting includes performing byte code instrumenting.

9. The non-transitory computer readable storage medium of claim 7 , wherein correlating includes: using the obtained asynchronous framework data to correlate threads handling the asynchronous method and a task object executed as art of the asynchronous method.

10. The non-transitory computer readable storage medium of claim 7 , wherein the monitoring the asynchronous framework includes: detecting a task object associated with the asynchronous method; and instrumenting the task object.

11. The non-transitory computer readable storage medium of claim 10 , the method further comprising:

correlating different threads associated with the asynchronous business transaction using the task object instrumentation.

12. The non-transitory computer readable storage medium of claim 11 , wherein the correlating different threads associated with the asynchronous business transaction using the task object instrumentation includes:

using an identifier associated with a call sent by the task object to the back-end obtained from the different threads associated with the asynchronous business transaction.

13. 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:

receive, by an agent executing on a server, a selection of a back-end calling method to monitor;

determine whether the received selection of the method to monitor is an asynchronous method;

responsive to the determination, instrument the asynchronous method call to monitor by injecting intermediate language and a map into a .NET framework;

responsive to the instrumenting, monitor, by the agent, asynchronous framework initiated by the instrumented asynchronous method call;

obtain asynchronous framework data based on the monitoring; and

correlate the back-end calling method with a distributed business transaction performed at least in part on the server.

14. The system of claim 13 , wherein the one or more modules are configured to instrument by performing byte code instrumenting.

15. The system of claim 13 , wherein the one or more modules are configured to correlate including:

use the obtained asynchronous framework data to correlate threads handling the asynchronous method and a task object executed as part of the asynchronous method.

16. The system of claim 13 , wherein the one or more modules are executable to monitor the asynchronous framework including:

detect a task object associated with the asynchronous method; and

instrument the task object.

17. The system of claim 16 , wherein the one or more modules are executable to correlate different threads associated with the asynchronous business transaction using the task object instrumentation.

18. The system of claim 17 , wherein the one or more modules are executable to correlate the different threads associated with the asynchronous business transaction using the task object instrumentation including:

use an identifier associated with a call sent by the task object to the back-end obtained from the different threads associated with the asynchronous business transaction.

Assignments (2)
CHANGE OF NAME Recorded Oct 11, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 044186/0226 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
Continuity (2)
Continuation 14701418 · Apr 30, 2015
Related Publication 20180007152A1 · Jan 4, 2018