IP Library Granted Patent US 11,709,756
Granted Patent B2
US 11,709,756 · App. 17/685,096 · Granted Jul 25, 2023

Dynamic distributed tracing instrumentation in a microservice architecture

Inventor: Heiko Rupp (Stuttgart, DE)
Assignee: Red Hat, Inc.
G06F11/3466G06F8/74G06F9/4843G06F9/547G06F11/3636
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,709,756
App. No.
17/685,096
Granted
Jul 25, 2023
Kind
B2
Abstract

A tracing operation is initiated on a service, wherein the service comprises a plurality of method calls. A span is generated comprising timing information associated with the service, wherein the span comprises a plurality of nested spans associated with the plurality of method calls. A determination is made as to whether one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of nested spans. In response to determining that the one or more method calls of the plurality of method calls are causing the service to underperform, a remedial action associated with the one or more method calls is performed.

Claims (57)

1. A method comprising:

generating, as part of a tracing operation on a service executing on a computing device, a span comprising timing information associated with the service, wherein the service comprises a plurality of method calls, and wherein the span comprises a plurality of nested spans associated with the plurality of method calls;

determining, by a hardware processing device, whether one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of nested spans; and

in response to determining that the one or more method calls of the plurality of method calls are causing the service to underperform, performing a remedial action associated with the one or more method calls, wherein performing the remedial action associated with the one or more method calls comprises:

inserting a synthetic span in a first method call of the one or more method calls of the service executing on the computing device to acquire a duration of time to execute a first set of source code of the first method call and identify a portion of the source code of the first method call that causes the service to underperform.

2. The method of claim 1 , wherein each of the plurality of nested spans comprises timing information associated with a corresponding method call of the plurality of method calls.

3. The method of claim 1 , wherein determining whether the one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of spans comprises:

identifying a corresponding anticipated time for each of the plurality of method calls;

determining a deviation between a corresponding anticipated time and corresponding timing information of each of the plurality of nested spans for each of the plurality of method calls;

determining whether the deviation between the corresponding anticipated time and the corresponding timing information of each of the plurality of method calls satisfies a deviation threshold; and

determining that the one or more method calls of the plurality of method calls are causing the service to underperform.

4. The method of claim 1 , wherein performing the remedial action associated with the one or more method calls comprises:

providing, to a tracing system, an indication of the one or more method calls that are causing the service to underperform.

5. The method of claim 1 , wherein performing the remedial action associated with the one or more method calls comprises:

identifying one or more causes associated with the one or more method calls that are causing the service to underperform; and

providing, to a tracing system, an indication of the one or more causes associated with the one or more method calls that are causing the service to underperform.

6. The method of claim 1 , wherein performing the remedial action associated with the one or more method calls comprises:

identifying one or more causes associated with the one or more method calls that are causing the service to underperform; and

performing one or more actions to remedy the one or more causes associated with the one or more method calls that are causing the service to underperform.

7. The method of claim 1 , further comprising:

determining a time of an internal process of the service in view of the timing information of the tracing operation and a corresponding time for each of the plurality of method calls.

8. A system comprising:

a memory; and

a hardware processing device, operatively coupled to the memory, to:

generate, as part of a tracing operation on a service executing on a computing device, a span comprising timing information associated with the service, wherein the service comprises a plurality of method calls, and wherein the span comprises a plurality of nested spans associated with the plurality of method calls;

determine whether one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of nested spans; and

in response to determining that the one or more method calls of the plurality of method calls are causing the service to underperform, perform a remedial action associated with the one or more method calls, wherein, to perform the remedial action associated with the one or more method calls, the processing device is further to:

insert a synthetic span in a first method call of the one or more method calls of the service executing on the computing device to acquire a duration of time to execute a first set of source code of the first method call and identify a portion of the source code of the first method call that causes the service to underperform.

9. The system of claim 8 , wherein each of the plurality of nested spans comprises timing information associated with a corresponding method call of the plurality of method calls.

10. The system of claim 8 , wherein to determine whether the one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of spans, the processing device is further to:

identify a corresponding anticipated time for each of the plurality of method calls;

determine a deviation between a corresponding anticipated time and corresponding timing information of each of the plurality of nested spans for each of the plurality of method calls;

determine whether the deviation between the corresponding anticipated time and the corresponding timing information of each of the plurality of method calls satisfies a deviation threshold; and

in response to determining that the deviation between the corresponding anticipated time and the corresponding time for the one or more method calls of the plurality of method calls satisfies the deviation threshold, determine that the one or more method calls of the plurality of method calls are causing the service to underperform.

11. The system of claim 8 , wherein to perform the remedial action associated with the one or more method calls, the processing device is further to:

provide, to a tracing system, an indication of the one or more method calls that are causing the service to underperform.

12. The system of claim 8 , wherein to perform the remedial action associated with the one or more method calls, the processing device is further to:

identify one or more causes associated with the one or more method calls that are causing the service to underperform; and

provide, to a tracing system, an indication of the one or more causes associated with the one or more method calls that are causing the service to underperform.

13. The system of claim 8 , wherein to perform the remedial action associated with the one or more method calls, the processing device is further to:

identify one or more causes associated with the one or more method calls that are causing the service to underperform; and

perform one or more actions to remedy the one or more causes associated with the one or more method calls that are causing the service to underperform.

14. The system of claim 8 , wherein the processing device is further to:

determine a time of an internal process of the service in view of the timing information of the tracing operation and a corresponding time for each of the plurality of method calls.

15. A non-transitory computer-readable storage medium including instructions that, when executed by a hardware processing device, cause the processing device to:

generate, as part of a tracing operation on a service executing on a computing device, a span comprising timing information associated with the service, wherein the service comprises a plurality of method calls, and wherein the span comprises a plurality of nested spans associated with the plurality of method calls;

determine, by the processing device, whether one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of nested spans; and

in response to determining that the one or more method calls of the plurality of method calls are causing the service to underperform, perform a remedial action associated with the one or more method calls, wherein, to perform the remedial action associated with the one or more method calls, the processing device is further to:

insert a synthetic span in a first method call of the one or more method calls of the service executing on the computing device to acquire a duration of time to execute a first set of source code of the first method call and identify a portion of the source code of the first method call that causes the service to underperform.

16. The non-transitory computer-readable storage medium of claim 15 , wherein each of the plurality of nested spans comprises timing information associated with a corresponding method call of the plurality of method calls.

17. The non-transitory computer-readable storage medium of claim 15 , wherein to determine whether the one or more method calls of the plurality of method calls are causing the service to underperform in view of the plurality of spans, the processing device is further to:

identify a corresponding anticipated time for each of the plurality of method calls;

determine a deviation between a corresponding anticipated time and corresponding timing information of each of the plurality of nested spans for each of the plurality of method calls;

determine whether the deviation between the corresponding anticipated time and the corresponding timing information of each of the plurality of method calls satisfies a deviation threshold; and

in response to determining that the deviation between the corresponding anticipated time and the corresponding time for the one or more method calls of the plurality of method calls satisfies the deviation threshold, determine that the one or more method calls of the plurality of method calls are causing the service to underperform.

18. The non-transitory computer-readable storage medium of claim 15 , wherein to perform the remedial action associated with the one or more method calls, the processing device is further to:

provide, to a tracing system, an indication of the one or more method calls that are causing the service to underperform.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2023
From: RUPP, HEIKO
To: RED HAT, INC.
Reel/Frame 063882/0216 →
Continuity (2)
Continuation 16705911 · Dec 6, 2019
Related Publication 20220188214A1 · Jun 16, 2022