What the status page shows
The status page displays the current state of four monitored services:| Service | What it checks | Warn threshold |
|---|---|---|
| Database | Supabase connectivity and query latency | Query failure |
| AIS positions | Freshness of the most recent AIS position report | Older than 60 minutes |
| Data pipeline | Recency of the last completed ingestion job | Older than 2 hours |
| Visit pipeline | Recency of the last departed vessel visit update | Older than 3 hours |
- Operational — the service is healthy and data is fresh.
- Degraded — the service is responding but data is stale beyond its expected threshold.
- Down — the service failed its health check.
24-hour history
Below the current status, the page displays a visual timeline of health check results from the last 24 hours. Each colored bar represents a single check — green for operational, amber for degraded, and red for down. This makes it easy to spot intermittent issues or identify when a disruption started and resolved.How checks run
Health checks run automatically every 5 minutes. Each check records the service status, response latency, and any error details to theservice_uptime table. The status page reads from this table to render the current and historical view.
If a service fails three or more consecutive health checks, Overwatch logs an alert to the ingestion log so operators are notified.
Health API endpoint
You can also query service health programmatically:200with"status": "healthy"when all checks pass.200with"status": "degraded"when some checks return warnings but none have failed.503with"status": "unhealthy"when any check has failed.