IP Library Granted Patent US 11,113,122
Granted Patent B1
US 11,113,122 · App. 16/813,571 · Granted Sep 7, 2021

Event loop diagnostics

Inventors: Allan Feldman (San Francisco, CA); Loren Arthur (San Francisco, CA); Robert Lewis (San Francisco, CA)
Assignee: New Relic, Inc.
G06F9/52G06F9/485G06F9/4887
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 11,113,122
App. No.
16/813,571
Granted
Sep 7, 2021
Kind
B1
Abstract

A system monitors an event loop executing on a host and determines causes for delays in tasks of the event loop. The system may include circuitry that receives, from an agent of the host, event loop data defining suspend and resume times of the tasks of the event loop executing on the host. The circuitry determines, based on the event loop data, event loop analysis data defining execution times for each of the tasks. The circuitry determines, based on the event loop analysis data, a cause of a delay in a task of the event loop as resulting from at least one of (i) a task delay in execution of the task or (ii) a loop delay in execution of another task of the event loop.

Claims (40)

1. A method, comprising, by a circuitry:

receiving, from an agent of a host, event loop data defining suspend and resume times of tasks of an event loop executing on the host;

determining, based on the event loop data, event loop analysis data defining execution times for each of the tasks; and

determining, based on the event loop analysis data, a cause of a delay in a task of the event loop as resulting from at least one of (i) a task delay in execution of the task or (ii) a loop delay in execution of another task of the event loop.

2. The method of claim 1 , further comprising, by the circuitry, determining the cause of the delay in the task as resulting from the task delay in execution of the task based on an execution time of the task exceeding an execution time threshold.

3. The method of claim 1 , further comprising, by the circuitry, determining the cause of the delay in the task as resulting from the loop delay in execution of the other task of the event loop based on an execution time of the other task exceeding an execution time threshold.

4. The method of claim 3 , further comprising, by the circuitry:

determining a blocking time for the task based on the event loop data defining suspend and resume times of the tasks of the event loop; and

determining the cause of the delay in the task as resulting from the loop delay in execution of the other task of the event loop based on the blocking time exceeding a blocking time threshold.

5. The method of claim 1 , wherein:

the event loop data includes a response time between the host and a client device associated with the task; and

further comprising, by the circuitry, determining the cause of the delay in the task of the event loop as resulting from a network delay based on response time between the host and a client device associated with the task.

6. The method of claim 5 , wherein determining the cause of the delay in the task of the event loop as resulting from the network delay includes determining that the response time exceeds a threshold response time.

7. The method of claim 1 , wherein the host executes the task of the event loop while other tasks of the event loop are suspended.

8. The method of claim 1 , wherein each task of the event loop is associated with a different client device.

9. The method of claim 1 , further comprising, by the circuitry, providing at least one of a report or an alert indicating the cause of the delay in the task to a computing device via a network.

10. A system, comprising:

circuitry configured to:

receive, from an agent of a host, event loop data defining suspend and resume times of tasks of an event loop executing on the host;

determine, based on the event loop data, event loop analysis data defining execution times for each of the tasks; and

determine, based on the event loop analysis data, a cause of a delay in a task of the event loop as resulting from at least one of (i) a task delay in execution of the task or (ii) a loop delay in execution of another task of the event loop.

11. The system of claim 10 , wherein the circuitry is configured to determine the cause of the delay in the task as resulting from the task delay in execution of the task based on an execution time of the task exceeding an execution time threshold.

12. The system of claim 10 , wherein the circuitry is configured to determine the cause of the delay in the task as resulting from the loop delay in execution of the other task of the event loop based on an execution time of the other task exceeding an execution time threshold.

13. The system of claim 12 , wherein the circuitry is further configured to:

determine a blocking time for the task based on the event loop data defining suspend and resume times of the tasks of the event loop; and

determine the cause of the delay in the task as resulting from the loop delay in execution of the other task of the event loop based on the blocking time exceeding a blocking time threshold.

14. The system of claim 10 , wherein:

the event loop data includes a response time between the host and a client device associated with the task; and

the circuitry is further configured to determine the cause of the delay in the task of the event loop as resulting from a network delay based on response time between the host and a client device associated with the task.

15. The system of claim 14 , wherein the circuitry configured to determine the cause of the delay in the task of the event loop as resulting from the network delay includes the circuitry being configured to determine that the response time exceeds a threshold response time.

16. The system of claim 10 , wherein:

the host executes the task of the event loop while other tasks of the event loop are suspended; and

each task of the event loop is associated with a different client device.

17. The system of claim 10 , wherein the circuitry is further configured to provide at least one of a report or an alert indicating the cause of the delay in the task to a computing device via a network.

18. A non-transitory computer readable storage medium having instructions encoded thereon that, when executed by a processor, configures the processor to:

receive, from an agent of a host, event loop data defining suspend and resume times of tasks of an event loop executing on the host;

determine, based on the event loop data, event loop analysis data defining execution times for each of the tasks; and

determine, based on the event loop analysis data, a cause of a delay in a task of the event loop as resulting from at least one of (i) a task delay in execution of the task or (ii) a loop delay in execution of another task of the event loop.

19. The non-transitory computer readable storage medium of claim 18 , wherein the instructions configure the processor to determine the cause of the delay in the task as resulting from the task delay in execution of the task based on an execution time of the task exceeding an execution time threshold.

20. The non-transitory computer readable storage medium of claim 19 , wherein the instructions configure the processor to determine the cause of the delay in the task as resulting from the loop delay in execution of the other task of the event loop based on an execution time of the other task exceeding an execution time threshold.

Assignments (2)
SECURITY INTEREST Recorded Nov 8, 2023
From: NEW RELIC, INC.
To: BLUE OWL CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 065491/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2020
From: FELDMAN, ALLAN; ARTHUR, LOREN; LEWIS, ROBERT
To: NEW RELIC, INC.
Reel/Frame 052433/0270 →