Configures Prometheus scraping, log drains, and observability for Supabase infrastructure monitoring.
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
https://<project-ref>.supabase.co/customer/v1/privileged/metrics.prometheus.yml targets section, substituting <project-ref> and <service-role-key>:scrape_configs:
- job_name: supabase-<project-ref>
scheme: https
metrics_path: /customer/v1/privileged/metrics
scrape_interval: 30s
authorization:
type: Bearer
credentials: <service-role-key>
static_configs:
- targets:
- <project-ref>.supabase.co# Create log drains for all sources (replace <destination-url> and <project-ref>)
for SOURCE in api postgres auth; do
supabase --project-ref <project-ref> log-drains create \
--source "$SOURCE" \
--destination-url <destination-url> \
--format json
done
# Verify drain status
supabase --project-ref <project-ref> log-drains listACTIVE for each source via the list command output.http_request_duration_seconds)pgbouncer_pools_*)gotrue_* metrics)storage_* metrics)Write the content below to a standalone file named supabase_alerts.yml and reference it from prometheus.yml under rule_files. The file defines five alert rules across three signal areas:
supabase_alerts.yml (save separately and add to Prometheus rule_files):
groups:
- name: supabase
rules:
- alert: SupabaseAPILatencyWarning
expr: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])) > 2
for: 5m
labels:
severity: warning
annotations:
summary: "Supabase API p95 latency above 2s"
- alert: SupabaseAPILatencyCritical
expr: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])) > 5
for: 5m
labels:
severity: critical
annotations:
summary: "Supabase API p95 latency above 5s"
- alert: SupabaseConnectionPoolWarning
expr: (pgbouncer_pools_server_active_connections / pgbouncer_pools_server_login_connections) > 0.80
for: 5m
labels:
severity: warning
annotations:
summary: "Supabase connection pool saturation above 80%"
- alert: SupabaseConnectionPoolCritical
expr: (pgbouncer_pools_server_active_connections / pgbouncer_pools_server_login_connections) > 0.95
for: 2m
labels:
severity: critical
annotations:
summary: "Supabase connection pool saturation above 95%"
- alert: SupabaseAuthErrorRateWarning
expr: rate(gotrue_errors_total[5m]) / rate(gotrue_requests_total[5m]) > 0.05
for: 5m
labels:
severity: warning
annotations:
summary: "Supabase auth error rate above 5%"Add supabase_alerts.yml to prometheus.yml under rule_files:
rule_files:
- supabase_alerts.ymlThe agent MUST produce a report containing:
HALT if status is DEGRADED and surface the failing components immediately.