Distributed tracing, sometimes called distributed request tracing, is a method to monitor applications built on a microservices architecture.
IT and DevOps teams use distributed tracing to follow the course of a request or transaction as it travels through the application that is being monitored. This allows them to pinpoint bottlenecks, bugs, and other issues that impact the application’s performance.
Tracing is a fundamental process in software engineering, used by programmers along with other forms of logging, to gather information about an application’s behavior. But traditional tracing runs into problems when it is used to troubleshoot applications built on a distributed software architecture. Because microservices scale independently, it’s common to have multiple iterations of a single service running across different servers, locations, and environments simultaneously, creating a complex web through which a request must travel. These requests are nearly impossible to track with traditional techniques designed for a single service application.
Distributed tracing solutions solve this problem, and numerous other performance issues, because it can track requests through each service or module and provide an end-to-end narrative account of that request. Analysts, SREs, developers and others can observe each iteration of a function, enabling them to conduct performance monitoring by seeing which instance of that function is causing the app to slow down or fail, and how to resolve it.
In the pages that follow, we’ll take a deep dive into distributed tracing and the technologies used to make it possible in your enterprise.