123 lines
3.6 KiB
YAML
123 lines
3.6 KiB
YAML
|
|
# 本地可观测性栈 overlay(与 docker-compose.dev.yml 一起使用)
|
|||
|
|
#
|
|||
|
|
# docker compose -f docker-compose.dev.yml -f docker-compose.observability.yml up -d
|
|||
|
|
#
|
|||
|
|
# 宿主机端口刻意避开 3000/9090/4317 等常用口,与 .env.example 中 OTEL_* / *_HOST_PORT 对齐。
|
|||
|
|
# Grafana: http://127.0.0.1:${GRAFANA_HOST_PORT:-48300} (admin / admin)
|
|||
|
|
# OTLP: 127.0.0.1:${OTEL_GRPC_HOST_PORT:-48317} (gRPC) :${OTEL_HTTP_HOST_PORT:-48318} (HTTP)
|
|||
|
|
|
|||
|
|
services:
|
|||
|
|
otel-collector:
|
|||
|
|
image: otel/opentelemetry-collector-contrib:0.120.0
|
|||
|
|
container_name: life-echo-otel-collector
|
|||
|
|
command: ["--config=/etc/otelcol/config.yaml"]
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/otel-collector-config.yaml:/etc/otelcol/config.yaml:ro
|
|||
|
|
ports:
|
|||
|
|
- "127.0.0.1:${OTEL_GRPC_HOST_PORT:-48317}:4317"
|
|||
|
|
- "127.0.0.1:${OTEL_HTTP_HOST_PORT:-48318}:4318"
|
|||
|
|
- "127.0.0.1:${OTEL_COLLECTOR_HEALTH_HOST_PORT:-48333}:13133"
|
|||
|
|
depends_on:
|
|||
|
|
tempo:
|
|||
|
|
condition: service_started
|
|||
|
|
loki:
|
|||
|
|
condition: service_started
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
tempo:
|
|||
|
|
image: grafana/tempo:2.7.2
|
|||
|
|
container_name: life-echo-tempo
|
|||
|
|
command: ["-config.file=/etc/tempo.yaml"]
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/tempo.yaml:/etc/tempo.yaml:ro
|
|||
|
|
- tempo_data:/var/tempo
|
|||
|
|
ports:
|
|||
|
|
- "127.0.0.1:${TEMPO_HTTP_HOST_PORT:-43200}:3200"
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
loki:
|
|||
|
|
image: grafana/loki:3.4.2
|
|||
|
|
container_name: life-echo-loki
|
|||
|
|
command: ["-config.file=/etc/loki/loki-config.yaml"]
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/loki-config.yaml:/etc/loki/loki-config.yaml:ro
|
|||
|
|
- loki_data:/loki
|
|||
|
|
ports:
|
|||
|
|
- "127.0.0.1:${LOKI_HTTP_HOST_PORT:-43100}:3100"
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
promtail:
|
|||
|
|
image: grafana/promtail:3.4.2
|
|||
|
|
container_name: life-echo-promtail
|
|||
|
|
command: ["-config.file=/etc/promtail/config.yml"]
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/promtail-config.yaml:/etc/promtail/config.yml:ro
|
|||
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|||
|
|
depends_on:
|
|||
|
|
loki:
|
|||
|
|
condition: service_started
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
prometheus:
|
|||
|
|
image: prom/prometheus:v3.2.1
|
|||
|
|
container_name: life-echo-prometheus
|
|||
|
|
command:
|
|||
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|||
|
|
- --storage.tsdb.path=/prometheus
|
|||
|
|
- --web.enable-lifecycle
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|||
|
|
- prometheus_data:/prometheus
|
|||
|
|
ports:
|
|||
|
|
- "127.0.0.1:${PROMETHEUS_HOST_PORT:-49090}:9090"
|
|||
|
|
depends_on:
|
|||
|
|
otel-collector:
|
|||
|
|
condition: service_started
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
grafana:
|
|||
|
|
image: grafana/grafana:11.5.2
|
|||
|
|
container_name: life-echo-grafana
|
|||
|
|
environment:
|
|||
|
|
GF_SECURITY_ADMIN_USER: admin
|
|||
|
|
GF_SECURITY_ADMIN_PASSWORD: admin
|
|||
|
|
GF_USERS_ALLOW_SIGN_UP: "false"
|
|||
|
|
GF_AUTH_ANONYMOUS_ENABLED: "false"
|
|||
|
|
volumes:
|
|||
|
|
- ./deploy/observability/grafana/provisioning:/etc/grafana/provisioning:ro
|
|||
|
|
- ./deploy/observability/grafana/dashboards:/etc/grafana/dashboards:ro
|
|||
|
|
- grafana_data:/var/lib/grafana
|
|||
|
|
ports:
|
|||
|
|
- "127.0.0.1:${GRAFANA_HOST_PORT:-48300}:3000"
|
|||
|
|
depends_on:
|
|||
|
|
prometheus:
|
|||
|
|
condition: service_started
|
|||
|
|
tempo:
|
|||
|
|
condition: service_started
|
|||
|
|
loki:
|
|||
|
|
condition: service_started
|
|||
|
|
networks:
|
|||
|
|
- default
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
tempo_data:
|
|||
|
|
loki_data:
|
|||
|
|
prometheus_data:
|
|||
|
|
grafana_data:
|
|||
|
|
|
|||
|
|
networks:
|
|||
|
|
default:
|
|||
|
|
name: life-echo-dev
|
|||
|
|
external: true
|