-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
62 lines (57 loc) · 2.13 KB
/
Copy pathdocker-compose.yml
File metadata and controls
62 lines (57 loc) · 2.13 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
version: "3.9"
# After `docker compose up -d`:
# Jaeger UI → http://localhost:16686
# Grafana UI → http://localhost:3000 (anonymous Viewer auth, Tempo pre-wired)
# OTLP gRPC → localhost:4317 (send traces here, not a browser UI)
# OTLP HTTP → localhost:4318
#
# This stack is for local development only. It has no auth on the OTLP receivers
# and Grafana grants anonymous read access — do not publish these ports beyond
# localhost / an isolated dev network.
services:
jaeger:
image: jaegertracing/all-in-one:1.58
ports:
- "16686:16686" # Jaeger UI
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP HTTP receiver
environment:
- COLLECTOR_OTLP_ENABLED=true
restart: unless-stopped
# Optional: Grafana + Tempo for trace storage
tempo:
image: grafana/tempo:2.5.0
command: ["-config.file=/etc/tempo.yaml"]
volumes:
- ./docker/tempo.yaml:/etc/tempo.yaml
- tempo-data:/tmp/tempo
ports:
- "3200:3200" # Tempo query API
- "9095:9095" # Tempo gRPC
- "4319:4317" # OTLP gRPC → Tempo (use 4319 to avoid conflict with Jaeger's 4317)
- "4320:4318" # OTLP HTTP → Tempo
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3200/ready"]
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
grafana:
image: grafana/grafana:11.0.0
ports:
- "3000:3000" # Grafana UI (primary browser UI)
environment:
# Anonymous access is read-only (Viewer) so an unauthenticated visitor to this
# local dev instance can browse traces but not reconfigure datasources/alerts/
# plugins. Login form stays enabled so an operator can still sign in as admin
# (default admin/admin — change it if this ever runs anywhere but localhost).
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
volumes:
- ./docker/grafana/datasources:/etc/grafana/provisioning/datasources
depends_on:
tempo:
condition: service_healthy
restart: unless-stopped
volumes:
tempo-data: