This document discusses distributed tracing at Uber scale. It explains why companies implement distributed tracing, including for distributed transaction monitoring, performance optimization, root cause analysis, and service dependency analysis. It also discusses challenges with instrumentation and context propagation across services. Finally, it outlines strategies Uber used to encourage adoption of distributed tracing across many teams, such as appealing to developers' interests and measuring adoption through trace quality scores.