1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Jaeger all-in-one distributed tracing backend for Zeph.
# Image version pinned 2026-04-11. Review periodically.
#
# Usage (Zeph running on the host via `cargo run`):
# docker compose -f docker/docker-compose.tracing.yml up -d
#
# Usage (alongside the main stack):
# docker compose -f docker/docker-compose.yml -f docker/docker-compose.tracing.yml up -d
#
# After starting:
# Jaeger UI: http://localhost:16686
#
# Enable tracing in Zeph config (requires --features otel or --features server):
# [telemetry]
# enabled = true
# backend = "otlp"
# otlp_endpoint = "http://localhost:4317"
# service_name = "zeph-agent"
# sample_rate = 1.0
#
# NOTE: this overlay binds port 4317 (OTLP gRPC). Do NOT run alongside
# docker-compose.profiling.yml — Tempo also binds 4317. Use one at a time.
services:
jaeger:
# v1.76.0 (latest v1 release; v2 requires a config file — upgrade when v2 stable image ships)
image: jaegertracing/all-in-one:latest@sha256:ab6f1a1f0fb49ea08bcd19f6b84f6081d0d44b364b6de148e1798eb5816bacac
environment:
# Collector: accept OTLP gRPC and HTTP
COLLECTOR_OTLP_ENABLED: "true"
# Keep memory store unbounded during dev sessions
SPAN_STORAGE_TYPE: memory
ports:
- "127.0.0.1:4317:4317" # OTLP gRPC (traces from Zeph)
- "127.0.0.1:4318:4318" # OTLP HTTP (alternative ingestion)
- "127.0.0.1:16686:16686" # Jaeger UI
healthcheck:
test:
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
default:
name: zeph-tracing