#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
#✅ Success Criteria
- Jaeger running
- Traces visible in UI
- Spans show timing