Distributed tracing is a technique used to profile and debug distributed systems. A distributed system is a system where components are distributed across multiple machines. Distributed tracing allows you to trace the flow of a request as it goes through the different components of a distributed system. OpenTelemetry and Jaeger are two of the most popular distributed tracing tools.