1 of 40

Introduction to Distributed Tracing

Suraj Nath

Sr. Software Engineer, Grafana Labs

2 of 40

Poll: Are you familiar with distributed tracing?

3 of 40

Poll: What are you using for tracing?

4 of 40

5 of 40

6 of 40

7 of 40

8 of 40

example call graph

9 of 40

What is Tracing?

10 of 40

Distributed Tracing is like cross service call-graph

11 of 40

Let’s learn some terms related to Tracing

12 of 40

Trace

13 of 40

Span

14 of 40

Context Propagation

15 of 40

16 of 40

Why do we need tracing?

17 of 40

Modern services are complex

Modern apps are powered by multiple microservices with many endpoints, databases, caches.

18 of 40

Logs and metrics are half the story

Hard to build the timeline of events with only logs and metrics

19 of 40

More detailed view into data transactions

Find dependencies, durations and bottlenecks across services.

20 of 40

So - how do I get started?

1

Instrument

Store

3

Query

4

Collect

2

21 of 40

Step 1 - Instrument your application

  • Many ways to instrument
    • Open Telemetry
    • Jaeger
    • Zipkin

  • Many Languages have auto Instrumentation in client SDK

22 of 40

Step 2 - Set up your tracing pipeline

A Pipeline / Agent / collector provides:

  • Buffering of spans for efficient data transmission
  • Ability to sample, enrich and control the flow of traces

23 of 40

Distributed Tracing (with Grafana Agent!)

24 of 40

Step 3 - Set up your Tracing Store

Tracing Store / Database will store your Traces,

…and provide ways to query the traces

25 of 40

Step 4 - Visualize

26 of 40

Basics are covered, now what?

When do you need Distributed Tracing?

27 of 40

Distributed Tracing with Grafana Stack

Agent + Tempo + Grafana

28 of 40

Run it yourself with Open Source

29 of 40

Run it yourself with Enterprise

Grafana Enterprise Traces

Grafana Enterprise

30 of 40

Let us handle it with Grafana Cloud

Grafana Cloud

Traces

Grafana

Cloud

31 of 40

Running Tempo

32 of 40

Running in Scalable Single Binary mode

33 of 40

Running in microservices mode

34 of 40

Coming soon!

TraceQL +

35 of 40

TraceQL

36 of 40

37 of 40

https://github.com/grafana/intro-to-mlt

38 of 40

Recommended Session from ObservabilityCON 2022

Scale observability with Mimir, Loki, and Tempo

<scan QR code for link>

39 of 40

40 of 40

Thank you

Slides: https://suraj.dev/talks

Twitter: @electron0zero