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