Distributed Tracing at UBER Scale
Crea7ng a treasure map
for your monitoring data
Yuri Shkuro, UBER Technologies
Slide 2
Slide 2 text
ABOUT ME
• SoAware Engineer on the
Observability team in NYC
• Working on the open source
distributed tracing system Jaeger
• Co-founded the OpenTracing
project
• Banking industry survivor
• Github: yurishkuro
• TwiLer: @yurishkuro
Slide 3
Slide 3 text
Would You Like Some Tracing with
Your Monitoring?
What does it take to roll it out?
It’s Also the Frameworks
• Go: stdlib, gorilla, …
• Java: jaxrs2, okhLp, ApacheHLpClient, …
• Python: Flask, Django, Tornado, urllib2, …
• Node.js – who knows…
Slide 16
Slide 16 text
OpenTracing to the Rescue
Slide 17
Slide 17 text
No Help With In-Process Propaga7on
• Must be done manually
• UBER has 2000-3000 microservices
• Resources of the tracing team are limited
• Developers must instrument their code!
Service Dependency Analysis
• Explain to us what we just built
• Who are my dependencies
• Workflow analysis
• Where is all this traffic coming from?
• Service 7ers
Slide 23
Slide 23 text
Baggage
• Tenancy, test or produc7on
– Set at the top
– Used at the storage layer, prod or test DB
• Authen7ca7on tokens
– Signed user or service iden7ty
– Checked at mul7ple levels
Slide 24
Slide 24 text
S7cks and Carrots
• Get other teams build features on top
– Performance team
– Capacity & cost accoun7ng
– Baggage
• More carrots
• Eventually they become s7cks (peer pressure)
Slide 25
Slide 25 text
Each Organiza7on is Different
Find what works best
Slide 26
Slide 26 text
How to Measure Adop7on?
Measure everything
Slide 27
Slide 27 text
Does Service X Report Traces?
• Daily aggrega7on job
• Auto-book 7ckets
• Build a dashboard
• Pass/Fail: too easy to pass
Slide 28
Slide 28 text
Trace Quality Score
• Inspect traces
– See a caller, but no spans
• Join with other data
– Rou7ng logs
• Auto-book 7ckets (carefully, not for everyone)
– With detailed report
Slide 29
Slide 29 text
Trace Quality Metrics by Service
Slide 30
Slide 30 text
Thank You
• Jaeger
– hLps://github.com/uber/jaeger
– Blog: Evolving Distributed Tracing at UBER
– Blog: Take OpenTracing for a HotROD Ride
• OpenTracing: hLp://opentracing.io/
• We are hiring
• @yurishkuro