Law/scripts/ops/check_chat_health.sh
2026-03-02 16:30:14 +03:00

35 lines
945 B
Bash
Executable file

#!/usr/bin/env sh
set -eu
BASE_URL="${1:-http://localhost:8081}"
CHAT_HEALTH_URL="${BASE_URL%/}/chat-health"
BACKEND_HEALTH_URL="${BASE_URL%/}/health"
EMAIL_HEALTH_URL="${BASE_URL%/}/email-health"
check_http_200() {
url="$1"
code="$(curl -L -sS -o /dev/null -w "%{http_code}" "$url" || true)"
[ "$code" = "200" ]
}
if ! check_http_200 "$CHAT_HEALTH_URL"; then
echo "[ALERT] chat-service health check failed: $CHAT_HEALTH_URL" >&2
exit 2
fi
if ! check_http_200 "$BACKEND_HEALTH_URL"; then
echo "[ALERT] backend health check failed: $BACKEND_HEALTH_URL" >&2
exit 3
fi
if ! check_http_200 "$EMAIL_HEALTH_URL"; then
echo "[ALERT] email-service health check failed: $EMAIL_HEALTH_URL" >&2
exit 5
fi
if docker compose ps --format json 2>/dev/null | grep -q '"Health":"unhealthy"'; then
echo "[ALERT] at least one container has unhealthy state" >&2
exit 4
fi
echo "[OK] chat-service, backend and email-service are healthy"