#Jaeger

Open-source distributed tracing.


#Overview

Jaeger traces requests across microservices.


#Quick Start

bash
1# All-in-one container
2docker run -d --name jaeger \
3  -p 16686:16686 \
4  -p 6831:6831/udp \
5  jaegertracing/all-in-one:latest
6
7# UI: http://localhost:16686

#Instrumentation (Python)

python
1from jaeger_client import Config
2
3def init_tracer(service_name):
4    config = Config(
5        config={
6            'sampler': {'type': 'const', 'param': 1},
7            'local_agent': {'reporting_host': 'localhost'},
8        },
9        service_name=service_name,
10    )
11    return config.initialize_tracer()
12
13tracer = init_tracer('my-service')
14
15with tracer.start_span('my-operation') as span:
16    span.set_tag('key', 'value')
17    # Your code here

#Components

ComponentPurpose
jaeger-agentCollect spans
jaeger-collectorProcess spans
jaeger-queryUI and API
StorageCassandra/Elasticsearch

[!TIP] Pro Tip: Use OpenTelemetry SDK which exports to Jaeger!