Skip to main content
Supabase exposes each signal differently: logs are pushed by a log drain, metrics are pulled from a Prometheus endpoint, and traces come from your own application, with Supabase propagating the trace context so its logs join your spans.

Prerequisites

  • A Bronto API key with at least the Ingestion role (how to create one)
  • Your Supabase project reference — the 20-character string in Project Settings → General, or the subdomain of your project URL
  • For metrics: a Supabase secret API key (sb_secret_...) from Project Settings → API Keys, and an OpenTelemetry Collector

Send logs with a log drain

A log drain posts logs straight to Bronto’s OTLP endpoint. Nothing runs on your side.
1

Open Log Drains

In the Supabase dashboard, go to Project Settings → Log Drains and select Add drain.
2

Choose the OpenTelemetry destination

Select OpenTelemetry (OTLP) as the destination type.
3

Point it at Bronto

Fill in the fields below, then save the drain.Replace <REGION> with eu or us.
The drain covers Postgres, Auth, Storage, Realtime, PostgREST, API Gateway, and Edge Function logs. Supabase batches events and delivers on whichever comes first: 250 events or one second.

Send metrics with the OpenTelemetry Collector

Every Supabase project serves roughly 200 Postgres performance and health series in Prometheus format at:
/etc/otel/config.yaml
If your Collector already sends logs or traces, add this receiver and exporter to its metrics pipeline and leave the other pipelines alone. See Send metrics to Bronto.
The secret API key grants broad access to your project. Treat it as a credential: store it in a secret manager, pass it by environment variable, and rotate it periodically.

Send traces from your application

Supabase’s managed services do not emit their own spans, but its SDKs propagate W3C trace context on Supabase-bound requests. The resulting trace_id appears in API Gateway and Edge Function logs, so your application’s spans and Supabase’s logs land in the same trace — letting you go from a slow request straight to the Postgres statement behind it. Instrument your application with the OpenTelemetry SDK and point it at Bronto — see Ingest OpenTelemetry data into Bronto.

What you will see in Bronto

Metrics arrive as the supabase dataset in the .metrics collection — roughly 200 distinct series per project: Logs arrive as separate sources for Postgres, Auth, Storage, Realtime, PostgREST, API Gateway, and Edge Functions — see Supabase’s logging reference for the fields each one carries — parsed on arrival so fields are searchable without further configuration.

Troubleshooting