IP Library Granted Patent US 10,223,407
Granted Patent B2
US 10,223,407 · App. 14/530,564 · Granted Mar 5, 2019

Asynchronous processing time metrics

Inventors: William Drake Pijewski (San Francisco, CA); Peter Howard Holditch (Berkhamsted, GB); Vinay Srinivasaiah (San Francisco, CA)
Assignee: Cisco Technology, Inc.
G06F17/30377
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,223,407
App. No.
14/530,564
Granted
Mar 5, 2019
Kind
B2
Abstract

Asynchronous operations associated with a request such as threads, runnable elements, callable elements, and other invokable objects are tracked to determine the metrics about the request and operations. The present technology tracks the start and end of each asynchronous operation and maintains a counter which tracks the currently pending or executing asynchronous operations. By monitoring the request, the start and end of each asynchronous operation associated with the request, and the number of asynchronous operations currently executing, the present technology may identify the end of a request by identifying when the last asynchronous operation associated with the request ends. In some instances, the present technology identifies the end of a request when a counter which tracks the number of asynchronous operations executing reaches a value of zero after the first asynchronous operation has already begun. Tracking these operations allows the present technology to aggregate and report useful performance data about these requests.

Claims (51)

1. A system for monitoring an application, comprising:

a processor;

a memory; and

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

monitoring a request, by an agent executing on a server, as part of a distributed business transaction;

detecting one or more asynchronous operations associated with the request;

monitoring the one or more asynchronous operations as part of monitoring the request, wherein monitoring includes tracking a start and end of each of the one or more asynchronous operations associated with the request and a number of asynchronous operations pending or executing;

incrementing a counter when each of the one more asynchronous operations starts and decrementing the counter when each of the one or more asynchronous operations ends;

identifying the end of the request based at least in part on when the counter returns to a zero value, the zero value indicating that the last of the one or more asynchronous operations associated with the request has ended; and

reporting performance data for the asynchronous operations and request.

2. The system of claim 1 , the distributed business transaction occurring over multiple servers.

3. The system of claim 1 , the one or more asynchronous operations including a plurality of invokable asynchronous operations.

4. The system of claim 1 , wherein the one or more modules are executable to monitor the asynchronous operations includes tracking the last executing asynchronous operation associated with the request.

5. The system of claim 4 , wherein tracking includes updating a counter based on the one or more asynchronous operations.

6. The system of claim 5 , wherein the one or more modules are executable to increment a count associated with the request when an asynchronous operation associated with the request is constructed.

7. The system of claim 5 , wherein the one or more modules are executable to decrement a count associated with the request when execution of an asynchronous operation associated with the request has completed.

8. The system of claim 1 , wherein the request is completed before the one or more asynchronous operations complete.

9. The system of claim 1 , wherein the one or more modules are executable to provide the maximum number of concurrent threads, wherein a thread is associated with the request and each of the one or more asynchronous operations.

10. The system of claim 1 , wherein the one or more modules are executable to provide the start time and end time of the request and one or more asynchronous operations.

11. 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 a mobile application, the method comprising:

monitoring a request, by an agent executing on a server, as part of a distributed business transaction;

detecting one or more asynchronous operations associated with the request;

monitoring the one or more asynchronous operations as part of monitoring the request, wherein monitoring includes tracking a start and end of each of the one or more asynchronous operations associated with the request and a number of asynchronous operations pending or executing;

incrementing a counter when each of the one more asynchronous operations starts and decrementing the counter when each of the one or more asynchronous operations ends;

identifying the end of the request based at least in part on when the counter returns to a zero value, the zero value indicating that the last of the one or more asynchronous operations associated with the request has ended, and

reporting performance data for the asynchronous operations and request.

12. The non-transitory computer readable storage medium of claim 11 , the distributed business transaction occurring over multiple servers.

13. The non-transitory computer readable storage medium of claim 11 , the one or more asynchronous operations including a plurality of invokable asynchronous operations.

14. The non-transitory computer readable storage medium of claim 11 , wherein monitoring the asynchronous operations includes tracking the last executing asynchronous operation associated with the request.

15. The non-transitory computer readable storage medium of claim 14 , wherein tracking includes updating a counter based on the one or more asynchronous operations.

16. The non-transitory computer readable storage medium of claim 15 , wherein monitoring includes decrementing a count associated with the request when execution of an asynchronous operation associated with the request has completed.

17. The non-transitory computer readable storage medium of claim 15 , wherein monitoring includes incrementing a count associated with the request when an asynchronous operation associated with the request is constructed.

18. The non-transitory computer readable storage medium of claim 11 , wherein the request is completed before the one or more asynchronous operations complete.

19. The non-transitory computer readable storage medium of claim 11 , wherein reporting includes providing the maximum number of concurrent threads, wherein a thread is associated with the request and each of the one or more asynchronous operations.

20. The non-transitory computer readable storage medium of claim 11 , wherein reporting includes providing the start time and end time of the request and one or more asynchronous operations.

21. A method for monitoring an application, comprising:

monitoring a request, by an agent executing on a server, as part of a distributed business transaction;

detecting one or more asynchronous operations associated with the request;

monitoring the one or more asynchronous operations as part of monitoring the request, wherein monitoring includes tracking a start and end of each of the one or more asynchronous operations associated with the request and a number of asynchronous operations pending or executing;

incrementing a counter when each of the one more asynchronous operations starts and decrementing the counter when each of the one or more asynchronous operations ends;

identifying the end of the request based at least in part on when the counter returns to a zero value, the zero value indicating that the last of the one or more asynchronous operations associated with the request has ended; and

reporting performance data for the asynchronous operations and request.

22. The method of claim 21 , the distributed business transaction occurring over multiple servers.

23. The method of claim 21 , the one or more asynchronous operations including a plurality of invokable asynchronous operations.

24. The method of claim 21 , wherein monitoring the asynchronous operations includes tracking the last executing asynchronous operation associated with the request.

25. The method of claim 24 , wherein tracking includes updating a counter based on the construction of one or more asynchronous operations.

26. The method of claim 25 , wherein monitoring includes incrementing a count associated with the request when an asynchronous operation associated with the request is constructed.

27. The method of claim 25 , wherein the request is completed before the one or more asynchronous operations complete.

28. The method of claim 21 , wherein reporting includes providing the maximum number of concurrent threads, wherein a thread is associated with the request and each of the one or more asynchronous operations.

29. The method of claim 21 , wherein reporting includes providing the start time and end time of the request and one or more asynchronous operations.

30. The method of claim 21 , wherein reporting includes providing the time spent processing each asynchronous operation.

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 7, 2017
From: HOLDITCH, PETER HOWARD; PIJEWSKI, WILLIAM DRAKE; SRINIVASAIAH, VINAY
To: APPDYNAMICS, INC.
Reel/Frame 041197/0678 →
Continuity (1)
Related Publication 20160125060A1 · May 5, 2016
Cited By (6)
US 12,450,683 US 12,645,455 US 12,657,024 US 12,669,996 US 12,688,545 US 12,700,056