Nereus/observability/compose.yaml

57 lines
1.6 KiB
YAML

services:
prometheus:
image: prom/prometheus:v3.14.0
command:
- --config.file=/etc/prometheus/prometheus.yaml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=6h
ports:
- "${PROMETHEUS_PORT:-19090}:9090"
volumes:
- ./observability/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
- ./observability/alerts:/etc/prometheus/rules:ro
- prometheus-data:/prometheus
tempo:
image: grafana/tempo:3.0.3
command: ["-config.file=/etc/tempo.yaml"]
volumes:
- ./observability/tempo/tempo.yaml:/etc/tempo.yaml:ro
tmpfs:
- /var/tempo:uid=10001,gid=10001,mode=0755
loki:
image: grafana/loki:3.7.6
command: ["-config.file=/etc/loki/local-config.yaml"]
volumes:
- ./observability/loki/loki.yaml:/etc/loki/local-config.yaml:ro
tmpfs:
- /var/loki:uid=10001,gid=10001,mode=0755
otel-collector:
volumes:
- ./observability/otel-collector/local.yaml:/etc/otelcol-contrib/config.yaml:ro
depends_on:
- tempo
- loki
grafana:
image: grafana/grafana:13.2.0
environment:
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
GF_AUTH_DISABLE_LOGIN_FORM: "true"
ports:
- "${GRAFANA_PORT:-13000}:3000"
volumes:
- ./observability/grafana/provisioning:/etc/grafana/provisioning:ro
- ./observability/grafana/dashboards:/var/lib/grafana/dashboards:ro
- grafana-data:/var/lib/grafana
depends_on:
- prometheus
- tempo
- loki
volumes:
prometheus-data:
grafana-data: