IP Library Granted Patent US 12,361,009
Granted Patent B2
US 12,361,009 · App. 18/212,030 · Granted Jul 15, 2025

System and method for providing end-to-end observability for distributed event-driven applications

Inventor: James Rowe (Glasgow, GB)
Assignee: JPMORGAN CHASE BANK, N.A.
G06F16/24568G06F16/00G06F16/9566G06Q20/401H04L69/22
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 12,361,009
App. No.
18/212,030
Granted
Jul 15, 2025
Kind
B2
Abstract

A method and system for providing end-to-end observability for distributed event-driven applications are disclosed. The method includes generating a trace for an executed transaction and decomposing the generated trace into multiple synthetic traces or sub-traces. Each of the synthetic traces or sub-traces represents an operation performed for a discrete application function contained within that transaction. For each sub-trace a synthetic root span is generated, the root span representing an end-to-end time to process the respective application function.

Claims (54)

1. A method for providing end-to-end observability for distributed event-driven applications, the method comprising:

executing, by a processor, a transaction including a plurality of operations and generating a trace for the executed transaction;

receiving, by a plurality of local collectors, a plurality of spans generated from the plurality of operations executed in differing host servers;

filtering, by at least one local collector among the plurality of local collectors, asynchronous spans among the plurality of spans, such that only spans representing inter-process communications are forwarded to a global collector cluster including a plurality of global collectors;

identifying, by a load balancer, a target global collector among the plurality of global collectors for routing the spans associated with the generated trace;

transmitting, by the load balancer to the target global collector, the spans associated with the generated trace;

waiting, by the target global collector, until all of the asynchronous spans associated with a discrete path through the generated trace are received;

decomposing, by the target global collector, the trace into a plurality of sub-traces; and

deriving, by the target global collector, end-to-end metrics for each of the sub-traces.

2. The method according to claim 1 , further comprising:

re-parenting the internal spans, such that the internal spans may be related to one another in a parent-child relationship.

3. The method according to claim 1 , wherein the global collector cluster is a global cluster mode.

4. The method according to claim 1 , wherein the global collector cluster is regional cluster mode.

5. The method according to claim 1 , wherein the global collector cluster is a line of business cluster mode.

6. The method according to claim 1 , wherein at least one of the plurality of local collectors and at least one of the plurality of global collectors reside on a same network.

7. The method according to claim 1 , wherein at least one of the plurality of local collectors and at least one of the plurality of global collectors reside on different networks.

8. The method according to claim 1 , further comprising:

sampling, by the target global collector, one or more exemplary sub-traces.

9. The method according to claim 1 , further comprising:

sampling, by the target global collector, the generated trace.

10. The method according to claim 1 , wherein at least one of the sub-trace corresponds to an operation performed for a discrete application function contained within the transaction.

11. The method according to claim 1 , wherein at least one of the plurality of operations includes one or more sub-operations.

12. The method according to claim 11 , wherein a span is generated for each of the plurality of operations, and a sub-span is generated for each of the one or more sub-operations.

13. The method according to claim 1 , wherein the trace is defined by a tree of the plurality of spans.

14. The method according to claim 1 , wherein each of the sub-traces corresponds to an operation that is unrelated from one another.

15. The method according to claim 1 , wherein each of the sub-traces include different spans from one another.

16. The method according to claim 1 , wherein at least one of the plurality of local collectors reside in one of the host servers.

17. The method according to claim 1 , wherein each of the sub-traces resembles a synchronous trace.

18. The method according to claim 1 , wherein a span identifies a specific operation being executed, and a start time and an end time of the specific operation executed.

19. A system to provide for providing end-to-end observability for distributed event-driven applications, the system comprising:

a memory;

a display;

a processor;

a plurality of local collectors;

a plurality of global collectors; and

a load balancer,

wherein the system is configured to perform:

executing, by the processor, a transaction including a plurality of operations and generating a trace for the executed transaction;

receiving, by the plurality of local collectors, a plurality of spans generated from the plurality of operations executed in differing host servers;

filtering, by at least one local collector among the plurality of local collectors, asynchronous spans among the plurality of spans, such that only spans representing inter-process communications are forwarded to a global collector cluster including the plurality of global collectors;

identifying, by the load balancer, a target global collector among the plurality of global collectors for routing the spans associated with the generated trace;

transmitting, by the load balancer to the target global collector, the spans associated with the generated trace;

waiting, by the target global collector, until all of the asynchronous spans associated with a discrete path through the generated trace are received;

decomposing, by the target global collector, the trace into a plurality of sub-traces; and

deriving, by the target global collector, end-to-end metrics for each of the sub-traces.

20. A non-transitory computer readable storage medium that stores a computer program for providing end-to-end observability for distributed event-driven applications, the computer program, when executed by a processor, causing a system to perform a plurality of processes comprising:

executing a transaction including a plurality of operations and generating a trace for the executed transaction;

receiving, by a plurality of local collectors, a plurality of spans generated from the plurality of operations executed in differing host servers;

filtering, by at least one local collector among the plurality of local collectors, asynchronous spans among the plurality of spans, such that only spans representing inter-process communications are forwarded to a global collector cluster including a plurality of global collectors;

identifying, by a load balancer, a target global collector among the plurality of global collectors for routing the spans associated with the generated trace;

transmitting, by the load balancer to the target global collector, the spans associated with the generated trace;

waiting, by the target global collector, until all of the asynchronous spans associated with a discrete path through the generated trace are received;

decomposing, by the target global collector, the trace into a plurality of sub-traces; and

deriving, by the target global collector, end-to-end metrics for each of the sub-traces.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2023
From: ROWE, JAMES
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064512/0444 →
Continuity (1)
Related Publication 20240428243A1 · Dec 26, 2024
References Cited (5)
US 11526425B1 · Karis · 2022 [cited by examiner]
US 11860760B1 · Agarwal · 2024 [cited by examiner]
US 12021725B1 · Hulick, Jr. · 2024 [cited by examiner]
US 20230156093A1 · Danyi · 2023 [cited by examiner]
Opentelemetry-specification/specification/trace/semantic_conventions/messaging.md, retrieved Sep. 20, 2023 (https://github.com/open-telemetry/opentelemetryspecification/blob/main/specification/trace/semantic_conventions… [cited by applicant]