garage/script/telemetry/compose.yaml

44 lines
1.5 KiB
YAML
Raw Permalink Normal View History

2026-09-28 22:52:11 +02:00
# Local telemetry stack for Garage: Prometheus (metrics), Jaeger (traces), Grafana (UI).
# Garage is supposed to run on the host separatelty and be reachable on the docker bridge
services:
prometheus:
image: docker.io/prom/prometheus:${PROMETHEUS_TAG}
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=7d
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro,z
- prometheus:/prometheus
ports:
- "9090:9090"
extra_hosts:
- "host.docker.internal:host-gateway"
jaeger:
# Jaeger v2 all-in-one: receives OTLP directly, keeps traces in memory
image: docker.io/jaegertracing/jaeger:${JAEGER_TAG}
ports:
- "4317:4317" # OTLP gRPC (Garage admin.trace_sink)
- "4318:4318" # OTLP HTTP
- "16686:16686" # Jaeger UI
grafana:
image: docker.io/grafana/grafana:${GRAFANA_TAG}
environment:
# Anonymous viewers can browse dashboards and use Explore;
# log in as admin/admin to save changes
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_USERS_VIEWERS_CAN_EDIT: "true"
volumes:
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro,z
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards:ro,z
- ./grafana-garage-dashboard-prometheus.json:/etc/grafana/dashboards/garage.json:ro,z
- grafana:/var/lib/grafana
ports:
- "3000:3000"
depends_on: [prometheus, jaeger]
volumes:
prometheus:
grafana: