Files
MobilityOps/compose.observability.yaml
NuklearRabbit 00191e9b54
MobilityOps acceptance / backend (push) Failing after 20s
MobilityOps acceptance / frontend (push) Successful in 28s
MobilityOps acceptance / e2e (push) Skipped
M48: harden demo operations and offsite recovery
2026-08-21 22:17:49 +02:00

82 lines
3.2 KiB
YAML

services:
prometheus:
image: prom/prometheus:v3.7.1@sha256:ff7e389acbe064a4823212a500393d40a28a8f362e4b05cbf6742a9a3ef736b2
profiles: ["observability"]
entrypoint: ["/bin/sh", "-ec"]
command:
- >-
sed "s|__METRICS_BEARER_TOKEN__|$${METRICS_BEARER_TOKEN}|g"
/etc/prometheus/template.yml > /tmp/prometheus.yml
&& exec /bin/prometheus --config.file=/tmp/prometheus.yml
--storage.tsdb.retention.time=30d --web.enable-lifecycle
environment:
METRICS_BEARER_TOKEN: ${METRICS_BEARER_TOKEN:?Set the private metrics bearer token}
volumes:
- ./deploy/observability/prometheus.yml:/etc/prometheus/template.yml:ro
- ./deploy/observability/alerts.yml:/etc/prometheus/alerts.yml:ro
- mobilityops-prometheus:/prometheus
ports:
- "127.0.0.1:19090:9090"
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:9090/-/ready"]
interval: 15s
timeout: 5s
retries: 10
restart: unless-stopped
networks: [mobilityops]
alertmanager:
image: prom/alertmanager:v0.33.1@sha256:9e082985f56f4c8c9f724e18f2288c6708f472e56a5286b8863d080434ea065d
profiles: ["observability"]
entrypoint: ["/bin/sh", "-ec"]
command:
- >-
sed -e "s|__WEBHOOK_URL__|$${ALERTMANAGER_WEBHOOK_URL}|g"
-e "s|__WEBHOOK_TOKEN__|$${MOBILITYOPS_WEBHOOK_TRIGGER_TOKEN}|g"
/etc/alertmanager/template.yml > /tmp/alertmanager.yml
&& exec /bin/alertmanager --config.file=/tmp/alertmanager.yml
--storage.path=/alertmanager
environment:
ALERTMANAGER_WEBHOOK_URL: ${ALERTMANAGER_WEBHOOK_URL:-https://n8n.itworx.tech/webhook/mobilityops-alerts}
MOBILITYOPS_WEBHOOK_TRIGGER_TOKEN: ${MOBILITYOPS_WEBHOOK_TRIGGER_TOKEN:?Set the n8n webhook trigger token}
volumes:
- ./deploy/observability/alertmanager.yml:/etc/alertmanager/template.yml:ro
- mobilityops-alertmanager:/alertmanager
ports:
- "127.0.0.1:19093:9093"
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:9093/-/ready"]
interval: 15s
timeout: 5s
retries: 10
restart: unless-stopped
networks: [mobilityops]
grafana:
image: grafana/grafana:12.2.0@sha256:74144189b38447facf737dfd0f3906e42e0776212bf575dc3334c3609183adf7
profiles: ["observability"]
environment:
GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-admin}
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD:-change-me-before-start}
GF_USERS_ALLOW_SIGN_UP: "false"
GF_AUTH_ANONYMOUS_ENABLED: "false"
volumes:
- ./deploy/observability/grafana/provisioning:/etc/grafana/provisioning:ro
- ./deploy/observability/grafana/dashboards:/var/lib/grafana/dashboards:ro
- mobilityops-grafana:/var/lib/grafana
ports:
- "127.0.0.1:13000:3000"
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:3000/api/health | grep -Eq '\"database\"[[:space:]]*:[[:space:]]*\"ok\"'"]
interval: 15s
timeout: 5s
retries: 20
depends_on: [prometheus, alertmanager]
restart: unless-stopped
networks: [mobilityops]
volumes:
mobilityops-prometheus:
mobilityops-grafana:
mobilityops-alertmanager: