fix(monitoring): fix production monitoring startup, alertmanager configuration, prometheus alert syntax, and mcp healthcheck
Some checks failed
CI / Lint, Unit Tests & Build (push) Successful in 5m5s
CI / Deploy production (on server) (push) Has been cancelled

This commit is contained in:
Antigravity
2026-05-30 11:42:32 +00:00
parent c266359f63
commit ff0fae9ae7
4 changed files with 30 additions and 32 deletions

View File

@@ -130,13 +130,7 @@ docker compose up -d --remove-orphans --force-recreate memento-note
docker compose up -d memento-socket
docker compose up -d mcp-server 2>/dev/null || true
# Redémarrer les exporters monitoring pour appliquer les configs à jour
if docker ps --format '{{.Names}}' | grep -q "^memento-grafana$"; then
echo "=== Updating monitoring exporters ==="
env $(cat /opt/memento/.env.docker | grep -v '^#' | xargs) \
docker compose -f monitoring/docker-compose.monitoring.yml up -d \
postgres-exporter cadvisor node-exporter redis-exporter 2>&1 || true
fi
# Monitoring stack updates are handled at the end of successful deployment
echo "=== Migrations (Prisma CLI via node, pas npx) ==="
if docker compose exec -T memento-note test -f ./node_modules/prisma/build/index.js 2>/dev/null; then
@@ -152,24 +146,25 @@ for i in $(seq 1 "$HEALTH_CHECK_MAX_ITERATIONS"); do
ACTUAL=$(echo "$BODY" | jq -r '.commit // empty' 2>/dev/null || true)
if [ "$ACTUAL" = "$GIT_COMMIT" ]; then
echo "OK build-info commit=$ACTUAL"
if docker ps --format '{{.Names}}' | grep -q "^memento-grafana$"; then
# Ne recréer Prometheus que si sa config a changé (préserve l'historique TSDB)
PROM_CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -E '^monitoring/(prometheus\.yml|alerts\.yml)' || true)
GRAFANA_CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -E '^monitoring/' || true)
if [ -n "$PROM_CHANGED" ]; then
echo "=== Prometheus config changed — recreating ==="
docker compose -f monitoring/docker-compose.monitoring.yml up -d --force-recreate prometheus
else
echo "=== Prometheus config unchanged — keeping TSDB history ==="
docker compose -f monitoring/docker-compose.monitoring.yml up -d prometheus
fi
if [ -n "$GRAFANA_CHANGED" ]; then
echo "=== Grafana config changed — recreating ==="
docker compose -f monitoring/docker-compose.monitoring.yml up -d --force-recreate grafana
else
echo "=== Grafana config unchanged — keeping state ==="
docker compose -f monitoring/docker-compose.monitoring.yml up -d grafana
fi
echo "=== Updating monitoring stack ==="
if [ -f /opt/memento/.env.docker ]; then
export $(cat /opt/memento/.env.docker | grep -v '^#' | xargs)
fi
if [ -n "${TELEGRAM_BOT_TOKEN:-}" ] && [ -n "${TELEGRAM_CHAT_ID:-}" ]; then
echo "=== Starting Monitoring Stack (with Telegram bot) ==="
docker compose -f monitoring/docker-compose.monitoring.yml --profile telegram up -d --remove-orphans 2>&1 || echo "WARN: Failed to bring up monitoring stack"
else
echo "=== Starting Monitoring Stack (without Telegram bot) ==="
docker compose -f monitoring/docker-compose.monitoring.yml up -d --remove-orphans 2>&1 || echo "WARN: Failed to bring up monitoring stack"
fi
if docker ps --format '{{.Names}}' | grep -q "^memento-prometheus$"; then
echo "=== Reloading Prometheus configuration ==="
docker compose -f monitoring/docker-compose.monitoring.yml exec -T prometheus kill -SIGHUP 1 2>/dev/null || true
fi
if docker ps --format '{{.Names}}' | grep -q "^memento-alertmanager$"; then
echo "=== Reloading Alertmanager configuration ==="
docker compose -f monitoring/docker-compose.monitoring.yml exec -T alertmanager kill -SIGHUP 1 2>/dev/null || true
fi
docker compose ps
telegram_notify "success" "Deployment successful — app is healthy"