Skip to content

Add BackupDrill exporter to the exporters list - #3146

Open
supertj wants to merge 1 commit into
prometheus:mainfrom
supertj:add-backupdrill-exporter
Open

supertj wants to merge 1 commit into
prometheus:mainfrom
supertj:add-backupdrill-exporter

Conversation

@supertj

@supertj supertj commented Oct 19, 2026

Copy link
Copy Markdown

Adds the BackupDrill exporter under Miscellaneous. It's the exporter subcommand of backupdrill, an MIT-licensed CLI that backs up Supabase projects to your own S3-compatible bucket (https://github.com/backupdrill/cli). On each scrape it reads the bucket and reports when the newest complete backup finished, how big it is, and whether the last recorded restore drill passed. Timestamps are Unix seconds, there are no labels apart from build_info, and backupdrill_up goes to 0 when the bucket can't be read. Port 10059 is on the default port allocations page.

The link goes to the setup page with the metric list and example alert rules. If Storage fits better than Miscellaneous, I'm happy to move it.

Sample output (one snapshot, one recorded drill)
# HELP backupdrill_up Whether the last read of the backup bucket worked (1) or failed (0).
# TYPE backupdrill_up gauge
backupdrill_up 1
# HELP backupdrill_scrape_duration_seconds How long this scrape took to read the backup bucket.
# TYPE backupdrill_scrape_duration_seconds gauge
backupdrill_scrape_duration_seconds 0.021105
# HELP backupdrill_build_info The backupdrill CLI version running this exporter. Always 1.
# TYPE backupdrill_build_info gauge
backupdrill_build_info{version="2.6.0"} 1
# HELP backupdrill_snapshots Snapshot folders under <prefix>/<project>/, including ones without a manifest.json yet.
# TYPE backupdrill_snapshots gauge
backupdrill_snapshots 1
# HELP backupdrill_backup_last_success_timestamp_seconds When the newest complete snapshot finished (its manifest.json createdAt), as a Unix timestamp. 0 if there is none.
# TYPE backupdrill_backup_last_success_timestamp_seconds gauge
backupdrill_backup_last_success_timestamp_seconds 1792430998.015
# HELP backupdrill_latest_snapshot_dump_bytes Size of the database dump (pg_dump custom format) in the newest complete snapshot.
# TYPE backupdrill_latest_snapshot_dump_bytes gauge
backupdrill_latest_snapshot_dump_bytes 6822
# HELP backupdrill_latest_snapshot_storage_files Supabase Storage files in the newest complete snapshot. 0 for a database-only backup.
# TYPE backupdrill_latest_snapshot_storage_files gauge
backupdrill_latest_snapshot_storage_files 0
# HELP backupdrill_latest_snapshot_storage_bytes Total size of the Supabase Storage files in the newest complete snapshot.
# TYPE backupdrill_latest_snapshot_storage_bytes gauge
backupdrill_latest_snapshot_storage_bytes 0
# HELP backupdrill_latest_snapshot_tables Tables, partitioned tables and materialized views captured in the newest complete snapshot.
# TYPE backupdrill_latest_snapshot_tables gauge
backupdrill_latest_snapshot_tables 2
# HELP backupdrill_latest_snapshot_estimated_rows Row count of the newest complete snapshot, estimated from Postgres statistics (n_live_tup) at backup time.
# TYPE backupdrill_latest_snapshot_estimated_rows gauge
backupdrill_latest_snapshot_estimated_rows 520
# HELP backupdrill_drill_last_run_timestamp_seconds When the last drill recorded with --record finished, passed or not, as a Unix timestamp. 0 if none is recorded.
# TYPE backupdrill_drill_last_run_timestamp_seconds gauge
backupdrill_drill_last_run_timestamp_seconds 1792431000.002
# HELP backupdrill_drill_last_run_passed Whether the last recorded drill passed (1) or not (0).
# TYPE backupdrill_drill_last_run_passed gauge
backupdrill_drill_last_run_passed 1
# HELP backupdrill_drill_last_success_timestamp_seconds When the last passing drill recorded with --record finished, as a Unix timestamp. 0 if none is recorded.
# TYPE backupdrill_drill_last_success_timestamp_seconds gauge
backupdrill_drill_last_success_timestamp_seconds 1792431000.002
# HELP backupdrill_drill_last_success_restore_duration_seconds How long the database restore took in the last passing recorded drill.
# TYPE backupdrill_drill_last_success_restore_duration_seconds gauge
backupdrill_drill_last_success_restore_duration_seconds 0.1

Signed-off-by: Super Lede <founders@backupdrill.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant