feat: add transaction ID age to postgres_exporter - #2375
Open
valigula wants to merge 2 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a custom postgres_exporter metric to monitor wraparound risk by exporting the maximum age(datfrozenxid) across all databases, deployed via Ansible.
Changes:
- Deploy a new
queries.ymlcontaining thepg_wraparoundcustom query/metric definition. - Copy
queries.ymlinto/opt/postgres_exporter/during exporter provisioning.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| ansible/tasks/internal/postgres-exporter.yml | Copies the new custom queries.yml into the exporter install directory during provisioning. |
| ansible/files/queries.yml | Defines the pg_wraparound extended query exporting max transaction ID age across databases. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
valigula
marked this pull request as draft
August 21, 2026 15:52
postgres_exporter (v0.15.0, pinned in this repo's Ansible) already ships a database_wraparound collector reading both datfrozenxid and datminmxid from pg_database, covering XID and MultiXactId wraparound risk. It is defaultDisabled (registered via collector.database_wraparound.go), so it needs an explicit --collector.database_wraparound flag to turn on. Supersedes the custom pg_wraparound query added in the previous commits on this branch: that approach only tracked XID age and missed MultiXactId wraparound, a separate, independently-reachable shutdown condition. Mirrors the same pivot in supabase/salt#825. Exposes per-database: - pg_database_wraparound_age_datfrozenxid_seconds (XID age) - pg_database_wraparound_age_datminmxid_seconds (MultiXactId age) Related: INDATA-1261
valigula
force-pushed
the
andres/INDATA-1261-add-max-transaction-id-age-metric
branch
from
August 26, 2026 07:19
801c69c to
8be6636
Compare
hunleyd
approved these changes
Aug 26, 2026
valigula
marked this pull request as ready for review
August 27, 2026 15:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
feature INDATA-1261
related https://github.com/supabase/salt/pull/825
What is the current behavior?
What is the new behavior?
Add pg_wraparound custom metric to postgres_exporter that tracks the maximum transaction ID age across all databases. This enables proactive monitoring of wraparound risk before it reaches critical thresholds.
Additional context
Test