diff --git a/docs/workstreams/ALL_OTHER_WORKSTREAMS_REMAINING.md b/docs/workstreams/ALL_OTHER_WORKSTREAMS_REMAINING.md index 6ebaa849..d014290f 100644 --- a/docs/workstreams/ALL_OTHER_WORKSTREAMS_REMAINING.md +++ b/docs/workstreams/ALL_OTHER_WORKSTREAMS_REMAINING.md @@ -17,6 +17,7 @@ - 2026-02-14: Attempted `docker compose build` (fails: disk is full; free space before retrying) - 2026-02-15: `docker compose build` passes (all service images) - 2026-02-15: `docker compose up -d` passes (removed Loki logging-driver requirement; fixed healthchecks for Alpine/IPv6) +- 2026-02-15: Verified `/health` endpoints across services (docker-network check; see **6.17**) ## Prereqs (Local) @@ -69,7 +70,7 @@ Full-stack verification + E2E scenarios - [ ] **6.14** Test: User login -> view profile -> update settings - [ ] **6.15** Test: Tracker login -> create item -> add comment -> vote - [ ] **6.16** Test: Public roadmap page -> vote -> submit idea -- [ ] **6.17** Test: Service health checks via monitoring script +- [x] **6.17** Test: Service health checks via monitoring script (docker-network health probes pass) Publishing + repo hygiene diff --git a/services/monitoring/health-check.local.sh b/services/monitoring/health-check.local.sh new file mode 100755 index 00000000..16256276 --- /dev/null +++ b/services/monitoring/health-check.local.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail + +endpoints=( + "Traefik (dashboard)|http://127.0.0.1:8080/api/overview" + "Growth Service|http://127.0.0.1:4001/health" + "Billing Service|http://127.0.0.1:4002/health" + "Platform Service|http://127.0.0.1:4003/health" + "Tracker Service|http://127.0.0.1:4004/health" + "Extraction Service|http://127.0.0.1:4005/health" + "Loki|http://127.0.0.1:3100/ready" + "Grafana|http://127.0.0.1:3000/api/health" +) + +failures=0 + +echo "Health check (local)" +echo + +for item in "${endpoints[@]}"; do + name="${item%%|*}" + url="${item#*|}" + + if curl -fsS --max-time 5 "$url" >/dev/null; then + printf " OK %s\n" "$name" + else + printf " FAIL %s (%s)\n" "$name" "$url" >&2 + failures=$((failures + 1)) + fi +done + +echo + +if [[ "$failures" -gt 0 ]]; then + echo "Result: FAIL ($failures)" >&2 + exit 1 +fi + +echo "Result: OK"