Monitoring your application with distributed tracing so you actually know what it's doing
- Tutorial
![](https://webcf.waybackmachine.org/web/20210125111509im_/https://habrastorage.org/getpro/habr/upload_files/c35/24e/006/c3524e00639e326b87ad7bc0c21ebe8f.jpg)
What is distributed tracing? Distributed tracing is a method used to profile and monitor applications, especially those built using a microservices architecture. Distributed tracing helps pinpoint where failures occur and what causes poor performance.
Let’s have a look at a simple prototype. A user fetches information about a shipment from `logistic` service. logistic service does some computation and fetches the data from a database. logistic service doesn’t know the actual status of the shipment, so it has to fetch the updated status from another service `tracking`. `tracking` service also needs to fetch the data from a database and to do some computation.
In the screenshot below, we see a whole life cycle of the request issued to `logistics` service: