supabase-grafana
Observability for your Supabase project, using Prometheus/Grafana, collecting ~200 metrics at a granularity of 1 minute:
To run the collector locally using Docker Compose:
Create an .env
file:
cp .env.example .env
Fill it out with your project details.
To monitor a single project, fill out your project ref
and service role key
, which you can find here.
Alternatively, to monitor multiple projects you'll need to create an access token here.
After that, simply start docker compose and you will be able to access Grafana:
docker compose up
Visit localhost:8000 and login with the credentials:
admin
.env
file]Deploy this service to a server which is always running to continuously collect metrics for your Supabase project.
You can run the collector on a free instance of Fly.io
Follow these steps:
fly launch --copy-config
to deploy the app to Fly..env
file to your Fly project: fly secrets import < .env
https://<your-app-name>.fly.dev
The process for collecting metrics off read replicas is currently somewhat manual. The prometheus.target.yml.tpl
file can be edited to include the RRs as an independent target.
As an example, if the identifier for your read replica is foobarbaz-us-east-1-abcdef
, you would insert the following snippet:
- job_name: supabase-foobarbaz-us-east-1-abcdef
scheme: https
metrics_path: "/customer/v1/privileged/metrics"
basic_auth:
username: service_role
password: __SUPABASE_SERVICE_ROLE_KEY__
static_configs:
- targets: ["foobarbaz-us-east-1-abcdef.supabase.co"]
labels:
- supabase_project_ref: "foobarbaz-us-east-1-abcdef"