Why Monitor Supabase Database Health?
Supabase provides a powerful serverless backend, combining PostgreSQL, Realtime subscriptions, Storage, and Edge Functions. Since Supabase acts as the primary data layer and API gateway for your client apps, any performance degradation or service outage immediately halts user activity.
Common Supabase operational issues include:
- Connection Pool Exhaustion: When serverless functions scale rapidly, they can exhaust the available database connections, leading to rejected queries.
- REST API Gateway Latency: Spikes in requests can cause latency on the PostgREST API layer, degrading mobile and web client performance.
- Realtime Subscription Drops: Websocket connections for realtime updates can drop silently under high concurrent subscriber loads.
Active uptime checks help you identify database locks, service outages, and API delays before they impact your end-users.
🛠️ Step-by-Step Guide to Monitor Supabase Uptime
To ensure high availability of your Supabase projects, you should monitor the primary database port, the PostgREST API layer, and the realtime WebSocket connections.
1. Configure REST API Endpoint Checks
Supabase exposes a secure REST API gateway. Setting up an HTTPS monitor on your project's REST URL (e.g., https://[your-project-id].supabase.co/rest/v1/) is the easiest way to verify system health:
- Pass your public anonymous key (
apikeyheader) to authenticate the probe. - Assert a
200 OKresponse status. - Monitor global latency to identify regional routing issues.
2. Set Up Direct PostgreSQL TCP Checks
If you connect directly to PostgreSQL or via PgBouncer/Supavisor, set up a TCP port check:
- Target the connection pooler port (typically
6543) or direct database port (5432). - Monitor connection handshake times to detect network latency or resource limits.
3. Probe Realtime WebSocket Connections
If your application depends on Supabase Realtime for live updates, verify WebSocket availability:
- Configure socket probes targeting
wss://[your-project-id].supabase.co/realtime/v1/websocket. - Track connection drop rates and handshake completion times.
📋 Supabase Monitoring Checklist
| Check Area | Target | Recommended Frequency | Action on Failure |
| :--- | :--- | :--- | :--- |
| REST API Uptime | /rest/v1/ endpoint | Every 1 minute | High-priority instant alert |
| TCP Database Port | Port 6543 / 5432 | Every 1-2 minutes | High-priority instant alert |
| Realtime Gateway | WebSocket handshake | Every 5 minutes | Slack/Discord warning |
| API Latency | < 300ms response | Every 5 minutes | Log warning / performance alert |
💡 Frequently Asked Questions
How do I monitor a Supabase database?
You can monitor a Supabase database by pinging its REST API endpoint (/rest/v1/), checking TCP connection availability on port 5432 or 6543 (transaction pooler), or using application-level health checks that run simple queries.
What is the recommended check frequency for Supabase projects?
We recommend a 1-minute check frequency for production database connections and realtime API gateways to catch cold starts, socket exhaustion, or regional routing outages immediately.