Methods and systems of distributed tracing
First Claim
1. A method of distributed tracing in a distributed application, the method comprising:
- observing a plurality of messages sent and received among components of the distributed application, wherein the components of the distributed application communicate with each other through messages, and wherein one or more of the plurality of messages is a request and response message pair;
matching one or more request messages of the plurality of messages with one or more corresponding response messages of the plurality of messages;
generating a probabilistic model of a call flow based on observing the plurality of messages; and
constructing a call flow graph based on the probabilistic model for the distributed application, the call flow graph including a plurality of candidate call flow graphs that capture different orders of response and/or request message arrivals.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and methods are provided for distributed tracing in a distributed application. In one embodiment, a method includes observing a plurality of messages sent and received among components of the distributed application, generating a probabilistic model of a call flow from observed messages of the distributed system, and constructing a call flow graph based on the probabilistic model for the distributed application. Distributed tracing may include observing messages by performing the subscription-based observation techniques and operations to receive, message traces describing messages being communicated among components of the distributed application. In this regard, the tracing service may merge message traces from different instrumentation points with message traces obtained by observing message queues to generate a probabilistic model and call flow graph. A distributed application developer or other relevant user may benefit in efficiently and effectively tracking down a cause of an abnormal behavior or analyzing performance profiles.
-
Citations
31 Claims
-
1. A method of distributed tracing in a distributed application, the method comprising:
-
observing a plurality of messages sent and received among components of the distributed application, wherein the components of the distributed application communicate with each other through messages, and wherein one or more of the plurality of messages is a request and response message pair; matching one or more request messages of the plurality of messages with one or more corresponding response messages of the plurality of messages; generating a probabilistic model of a call flow based on observing the plurality of messages; and constructing a call flow graph based on the probabilistic model for the distributed application, the call flow graph including a plurality of candidate call flow graphs that capture different orders of response and/or request message arrivals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
at least one processor and memory; a plurality of service components of a distributed application, wherein the plurality of service components is executable on one or more processors, and components of the distributed application communicate with each other through messages; a message service component to provide communication between the plurality of service components of the distributed application; and a tracing service component configured to; observe a plurality of messages sent and received among the components of the distributed application, wherein one or more of the plurality of messages is a request and response message pair, match one or more request messages of the plurality of messages with one or more corresponding response messages of the plurality of messages, generate a probabilistic model of a call flow based on observing the plurality of messages, and construct a call flow graph based on the probabilistic model for the distributed application, the call flow graph including a plurality of candidate call flow graphs that capture different orders of response and/or request message arrivals. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A non-transitory computer-accessible storage medium storing program instructions that when executed by a computer cause the computer to implement a distributed tracing service in a distributed application to:
-
observe a plurality of messages sent and received among executing components of the distributed application, wherein the components of the distributed application communicate with each other through messages, and wherein one or more of the plurality of messages is a request and response message pair; match one or more request messages of the plurality of messages with one or more corresponding response messages of the plurality of messages; generate a probabilistic model of a call flow based on the matching based on observing the plurality of messages; and construct a call flow graph based on the probabilistic model for the distributed application, the call flow graph including a plurality of candidate call flow graphs that capture different orders of response and/or request message arrivals.
-
Specification