Production-Ready Template

Monitoring Supabase with Prometheus Alerting Best Practices

Supabase is a fast-growing open-source backend-as-a-service platform that provides a Postgres database, authentication, real-time subscriptions, and more. With distributed microservices architecture and essential stateful components like Postgres and Realtime servers, it's critical to monitor the health and performance of Supabase deployments using Prometheus. This blog highlights alert rules from the community-contributed template to help SREs, DevOps, and developers gain production-ready observability for Supabase services.

Core Alert Rule

High Supabase API 5xx Rate
Critical Performance Bottleneck
sum(rate(http_server_requests_seconds_count{service="api", status=~"5.."}[5m])) > 1
Why this matters
This alert checks for sustained 5xx error rates returned by the Supabase API service, indicating backend issues or misconfigurations affecting client experiences.
Tuning tips
Adjust the threshold (>1) based on expected error tolerance. For high-traffic environments, a small rate may be acceptable if tied to client retries. Tune the time window (5m) to reduce alert noise.
Supabase Postgres Instance Down
Operations blocking event loop
up{job="postgres"} == 0
Why this matters
Alerts when Prometheus cannot scrape the Postgres exporter, indicating service outage or connectivity issues to the core database.
Tuning tips
Add service-level annotations or silences during maintenance windows to avoid false positives. Ensure reliable Postgres exporter deployment.
High Supabase Realtime CPU Usage
Memory efficiency warning
avg by(instance) (rate(container_cpu_usage_seconds_total{container="realtime"}[5m])) > 0.75
Why this matters
Triggers when the Realtime server container exceeds 75% CPU usage averaged over five minutes. This may denote scaling issues with WebSocket connections.
Tuning tips
Adjust threshold based on CPU requests/limits in your environment. Monitor container resources to inform autoscaling policies.
Low Supabase Storage Disk Space
Service availability check
node_filesystem_avail_bytes{mountpoint="/var/lib/supabase/storage"} / node_filesystem_size_bytes{mountpoint="/var/lib/supabase/storage"} < 0.1
Why this matters
This alert fires when available disk space for Supabase storage service falls below 10%, helping prevent outages due to full volumes.
Tuning tips
Adjust the 10% threshold based on persistence tier configurations and backup frequency. Monitor storage usage trends for proactive planning.
Supabase Edge Proxy Down
Service availability check
up{job="edge-proxy"} == 0
Why this matters
Fires when Prometheus cannot scrape the Edge Proxy, which may signal DNS, networking, or service orchestration issues affecting ingress.
Tuning tips
Verify if the exporter is properly configured. Ensure that service discovery in Prometheus matches the deployed job label.
Service availability check
Why this matters
Tuning tips
No setup steps
Service availability check
Why this matters
Tuning tips
Service availability check
Why this matters
Tuning tips

Quick Setup

1
2
3
4
5

Frequently Asked Questions

Are these alert rules production-ready?
How do I integrate these alerts with Alertmanager?
What metrics exporters do I need?
Can I use these alerts in non-Kubernetes environments?

Ready to Get Started?

Start monitoring your Supabase services today with battle-tested Prometheus alert templates from the community. Get started by downloading the Supabase alert rules at https://github.com/DrDroidLab/prometheus-alert-templates/blob/master/supabase

SOC 2 Type II
certifed
ISO 27001
certified
Deep Sea Tech Inc. — Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid