Distributed tracing tracks and correlates requests between microservices, including proxies and gateways, in your service mesh. By implementing a tracing library such as Jaeger or Zipkin, you can trace the spans a request follows to investigate failures between service calls. 

Refer to [distributed tracing](/consul/docs/observe/distributed-tracing) for more information.