Methods and Systems of Distributed Tracing
5 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
21 Claims
-
1. (canceled)
-
2. 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, wherein one or more of the plurality of messages is a request and response message pair, and wherein the observing includes observing a first asynchronous message sent by a first component and a second asynchronous message received by the first component; generating a probabilistic model of a call flow based on observing the plurality of messages; constructing a probabilistic call flow graph based on the probabilistic model for the distributed application, wherein the first probabilistic call flow graph is assigned a first probability of occurrence and includes an indication that the first asynchronous message and the second asynchronous message are a request and response message pair; and constructing a second probabilistic call flow graph based on the probabilistic model for the distributed application, wherein the second probabilistic call flow graph is assigned a second probability of occurrence different from the first probability of occurrence, and wherein the second probabilistic call flow graph includes an indication that the second asynchronous message is triggered by an asynchronous request sent from the first component to a third component. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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 components of the distributed application, wherein the components of the distributed application communicate with each other through messages, wherein one or more of the plurality of messages is a request and response message pair, and wherein the observed plurality of messages includes observing a first asynchronous message sent by a first component and a second asynchronous message received by the first component; generate a probabilistic model of a call flow based on observing the plurality of messages; construct a probabilistic call flow graph based on the probabilistic model for the distributed application, wherein the first probabilistic call flow graph is assigned a first probability of occurrence and includes an indication that the first asynchronous message and the second asynchronous message are a request and response message pair; and construct a second probabilistic call flow graph based on the probabilistic model for the distributed application, wherein the second probabilistic call flow graph is assigned a second probability of occurrence different from the first probability of occurrence, and wherein the second probabilistic call flow graph includes an indication that the second asynchronous message is triggered by an asynchronous request sent from the first component to a third component. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
Specification