Hands-on Lab

#Lab: Distributed Tracing

Implement distributed tracing with Jaeger.

#🎯 Objectives

  • Deploy Jaeger
  • Instrument application
  • View traces

#Task 1: Deploy Jaeger

bash
1docker run -d --name jaeger \
2  -p 16686:16686 \
3  -p 6831:6831/udp \
4  jaegertracing/all-in-one:latest

#Task 2: Instrument App (Python)

python
1from opentelemetry import trace
2from opentelemetry.sdk.trace import TracerProvider
3from opentelemetry.sdk.trace.export import BatchSpanProcessor
4from opentelemetry.exporter.jaeger.thrift import JaegerExporter
5
6# Setup
7trace.set_tracer_provider(TracerProvider())
8tracer = trace.get_tracer(__name__)
9
10jaeger_exporter = JaegerExporter(
11    agent_host_name="localhost",
12    agent_port=6831,
13)
14trace.get_tracer_provider().add_span_processor(
15    BatchSpanProcessor(jaeger_exporter)
16)
17
18# Create trace
19with tracer.start_as_current_span("my-operation"):
20    print("Traced operation")

#Task 3: View in Jaeger UI

Open http://localhost:16686


#✅ Success Criteria

  • Jaeger running
  • Traces visible in UI
  • Spans show timing