IP Library Granted Patent US 11,288,164
Granted Patent B2
US 11,288,164 · App. 16/705,911 · Granted Mar 29, 2022

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,288,164
App. No.
16/705,911
Granted
Mar 29, 2022
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 (61)

1. A method comprising:

initiating a dynamic tracing operation on a service, wherein the service comprises a plurality of method calls;

by using the dynamic tracing operation:

generating, by executing the service, a span comprising timing information associated with the service, wherein the span comprises a plurality of nested spans associated with the plurality of method calls;

determining, by a 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, 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 nested 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;

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, determining that the one or more method calls of the plurality of method calls are causing the service to underperform; 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 by increasing a number of connections to a database pool to increase bandwidth.

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 performing a second 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.

4. The method of claim 1 , wherein performing a second 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.

5. The method of claim 1 , wherein performing a second 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.

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

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

inserting synthetic spans in each of the one or more method calls to identify a portion of code for each of the one or more method calls that causes the service to underperform.

8. A system comprising:

a memory; and

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

initiate a dynamic tracing operation on a service, wherein the service comprises a plurality of method calls;

by using the dynamic tracing operation:

generate, by executing the service, a span comprising timing information associated with the service, 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, 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 nested 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;

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; 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 by increasing a number of connections to a database pool to increase bandwidth.

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 perform a second 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.

11. The system of claim 8 , wherein to perform a second 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.

12. The system of claim 8 , wherein to perform a second 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.

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

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

insert synthetic spans in each of the one or more method calls to identify a portion of code for each of the one or more method calls that causes the service to underperform.

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

initiate a dynamic tracing operation on a service, wherein the service comprises a plurality of method calls;

by using the dynamic tracing operation:

generate, by executing the service, a span comprising timing information associated with the service, 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, 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 nested 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 calk satisfies a deviation threshold;

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; 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 by increasing a number of connections to a database pool to increase bandwidth.

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 perform a second 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 (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2021
From: RUPP, HEIKO
To: RED HAT, INC.
Reel/Frame 056750/0554 →
Continuity (1)
Related Publication 20210173759A1 · Jun 10, 2021