Introduction to Distributed Tracing
Suraj Nath
Sr. Software Engineer, Grafana Labs
twitter: @electron0zero
Poll: Are you familiar with distributed tracing?
Poll: What are you using for tracing?
example call graph
What is Tracing?
Distributed Tracing is like cross service call-graph
Let’s learn some terms related to Tracing
Trace
Span
Context Propagation
Why do we need tracing?
Modern services are complex
Modern apps are powered by multiple microservices with many endpoints, databases, caches.
Logs and metrics are half the story
Hard to build the timeline of events with only logs and metrics
More detailed view into data transactions
Find dependencies, durations and bottlenecks across services.
So - how do I get started?
1
Instrument
Store
3
Query
4
Collect
2
Step 1 - Instrument your application
Step 2 - Set up your tracing pipeline
A Pipeline / Agent / collector provides:
Distributed Tracing (with Grafana Agent!)
Step 3 - Set up your Tracing Store
Tracing Store / Database will store your Traces,
…and provide ways to query the traces
Step 4 - Visualize
Basics are covered, now what?
When do you need Distributed Tracing?
Distributed Tracing with Grafana Stack
Agent + Tempo + Grafana
Run it yourself with Open Source
Run it yourself with Enterprise
Grafana Enterprise Traces
Grafana Enterprise
Let us handle it with Grafana Cloud
Grafana Cloud
Traces
Grafana
Cloud
Running Tempo
Running in Scalable Single Binary mode
Running in microservices mode
Coming soon!
TraceQL +
TraceQL
https://github.com/grafana/intro-to-mlt
Recommended Session from ObservabilityCON 2022
Scale observability with Mimir, Loki, and Tempo
<scan QR code for link>