docker-compose.monitoring.yml
Rama main · réplica de lectura del repositorio original.
# Monitoring profile (H2 production-readiness): Prometheus collectors +
# Grafana dashboard + alert rules for the private self-hosted deployment.
# Optional overlay: docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up -d
# Requires GRAFANA_ADMIN_PASSWORD in the environment. Add docker-compose.alerting.yml
# for optional operator notifications; see docs/OPERATIONS.md.
services:
prometheus:
image: prom/prometheus:v3.15.0@sha256:efd719c99d83b060d9daefdcf00360461adf279f45ef5391f8d111892118753e
container_name: ${CONTAINER_PREFIX:-novel}-prometheus
volumes:
- ./infra/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- ./infra/monitoring/alerts.yml:/etc/prometheus/alerts.yml:ro
networks:
- novel-net
restart: unless-stopped
logging:
driver: local
healthcheck:
test: [CMD, wget, -q, --spider, http://127.0.0.1:9090/-/healthy]
interval: 5s
timeout: 3s
retries: 10
grafana:
image: grafana/grafana:13.2.2-ubuntu@sha256:9a68a82ec38931e1baacee5d471cf74aa42565eb49554caa5290663529de6941
container_name: ${CONTAINER_PREFIX:-novel}-grafana
environment:
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:?GRAFANA_ADMIN_PASSWORD must be set for the monitoring profile}
GF_AUTH_ANONYMOUS_ENABLED: "false"
ports:
- "${GRAFANA_HTTP_PORT:-127.0.0.1:13000}:3000"
volumes:
- ./infra/monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
- ./infra/monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro
networks:
- novel-net
restart: unless-stopped
logging:
driver: local