Skip to content

Conversation

ianbibby
Copy link
Contributor

@ianbibby ianbibby commented Mar 26, 2025

This pull request adds a new collector that exposes metrics from pg_stat_progress_vacuum, enabling visibility into in-progress VACUUM operations. The collected metrics include:

  • Current phase of the vacuum (folllowing the State Set pattern)
  • Heap blocks scanned / vacuumed
  • Index vacuum cycle count
  • Dead tuple counts and limits

This collector queries the underlying function pg_stat_get_progress_info('VACUUM'::text) directly rather than using the pg_stat_progress_vacuum view.

Testing

  • Added unit tests, following the same structure as existing collectors (e.g. pg_stat_user_tables_test.go)
  • Manually tested against live PostgreSQL instances with vacuum activity, using controlled workloads to generate observable vacuum progress
  • Verified that metrics appear and update correctly on the Prometheus /metrics endpoint

Example output:

# HELP pg_stat_progress_vacuum_heap_blks Total number of heap blocks in the table being vacuumed. # TYPE pg_stat_progress_vacuum_heap_blks gauge pg_stat_progress_vacuum_heap_blks{datname="postgres",relname="foo"} 638708 # HELP pg_stat_progress_vacuum_heap_blks_scanned Number of heap blocks scanned so far. # TYPE pg_stat_progress_vacuum_heap_blks_scanned gauge pg_stat_progress_vacuum_heap_blks_scanned{datname="postgres",relname="foo"} 8448 # HELP pg_stat_progress_vacuum_heap_blks_vacuumed Number of heap blocks vacuumed so far. # TYPE pg_stat_progress_vacuum_heap_blks_vacuumed gauge pg_stat_progress_vacuum_heap_blks_vacuumed{datname="postgres",relname="foo"} 0 # HELP pg_stat_progress_vacuum_index_vacuums Number of completed index vacuum cycles. # TYPE pg_stat_progress_vacuum_index_vacuums gauge pg_stat_progress_vacuum_index_vacuums{datname="postgres",relname="foo"} 0 # HELP pg_stat_progress_vacuum_max_dead_tuples Maximum number of dead tuples that can be stored before cleanup is performed. # TYPE pg_stat_progress_vacuum_max_dead_tuples gauge pg_stat_progress_vacuum_max_dead_tuples{datname="postgres",relname="foo"} 1.1184809e+07 # HELP pg_stat_progress_vacuum_num_dead_tuples Current number of dead tuples found so far. # TYPE pg_stat_progress_vacuum_num_dead_tuples gauge pg_stat_progress_vacuum_num_dead_tuples{datname="postgres",relname="foo"} 228096 # HELP pg_stat_progress_vacuum_phase Current vacuum phase (1 = active, 0 = inactive). Label 'phase' is human-readable. # TYPE pg_stat_progress_vacuum_phase gauge pg_stat_progress_vacuum_phase{datname="postgres",phase="cleaning up indexes",relname="foo"} 0 pg_stat_progress_vacuum_phase{datname="postgres",phase="initializing",relname="foo"} 0 pg_stat_progress_vacuum_phase{datname="postgres",phase="performing final cleanup",relname="foo"} 0 pg_stat_progress_vacuum_phase{datname="postgres",phase="scanning heap",relname="foo"} 1 pg_stat_progress_vacuum_phase{datname="postgres",phase="truncating heap",relname="foo"} 0 pg_stat_progress_vacuum_phase{datname="postgres",phase="vacuuming heap",relname="foo"} 0 pg_stat_progress_vacuum_phase{datname="postgres",phase="vacuuming indexes",relname="foo"} 0 

Compatibility

  • This collector supports PostgreSQL versions 9.6 through 16.
  • The param mappings used from pg_stat_get_progress_info are consistent across these versions

Postgres 17 support

PostgreSQL 17 introduces breaking changes (pgpedia):

  • max_dead_tuples and num_dead_tuples were removed
  • Replaced by max_dead_tuple_bytes, dead_tuple_bytes, and num_dead_item_ids

This collector is not currently compatible with Postgres 17, but this is a known limitation. A future update can address this by adjusting param mappings based on the server version.

Copy link
Contributor

@SuperQ SuperQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of minor nits, and one feature suggestion.

Otherwise, looking good.

@SuperQ
Copy link
Contributor

SuperQ commented Mar 26, 2025

This needs a DCO sign-off. You can use git commit -s --amend to add it.

@ianbibby ianbibby force-pushed the bibby_pg_stat_progress_vacuum branch from b47ef94 to 780dc68 Compare March 26, 2025 19:17
README.md Outdated
Enable the `stat_database` collector (default: enabled).

* `[no-]collector.stat_progress_vacuum`
Enable the `stat_progress_vacuum` collector (default: disabled).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about making this one enabled by default. Are vacuum stats useful enough for most users?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think enabling this by default is acceptable here. I'll make it so.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is done.

@ianbibby ianbibby requested a review from SuperQ March 27, 2025 06:22
Co-authored-by: Ben Kochie <superq@gmail.com> Signed-off-by: Ian Bibby <ian.bibby@reddit.com>
@ianbibby ianbibby force-pushed the bibby_pg_stat_progress_vacuum branch from 9b9866b to a50603f Compare March 27, 2025 06:48
Copy link
Contributor

@SuperQ SuperQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@SuperQ SuperQ merged commit 9e86f1e into prometheus-community:master Apr 3, 2025
11 checks passed
Sticksman added a commit to Sticksman/postgres_exporter that referenced this pull request Apr 24, 2025
* Update common Prometheus files (prometheus-community#913) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Add changelog for v0.14 (prometheus-community#906) * Add changelog for v0.14 - Add changelog entries since v0.13.2 - Update README with new options - Bump version file Signed-off-by: Joe Adams <github@joeadams.io> * Add changelog entry for prometheus-community#904 Signed-off-by: Joe Adams <github@joeadams.io> --------- Signed-off-by: Joe Adams <github@joeadams.io> * Adds 1kB and 2kB units (prometheus-community#915) Signed-off-by: Eric tyrrell <eric.tyrrell18+github@gmail.com> * Add error log when probe collector creation fails (prometheus-community#918) Signed-off-by: Joe Adams <github@joeadams.io> * Fix test build failures on 32-bit arch again (prometheus-community#919) Another case of untyped integer overflows on 32-bit arch. Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com> * Add 32-bit testing to CI (prometheus-community#920) Run Go tests with 32-bit to validate value overflow. Signed-off-by: SuperQ <superq@gmail.com> * Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 (prometheus-community#925) * Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.16.0 to 1.17.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.16.0...v1.17.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update tests for latest client_golang. Signed-off-by: SuperQ <superq@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: SuperQ <superq@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: SuperQ <superq@gmail.com> * Update common Prometheus files (prometheus-community#926) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Adjust collector to use separate connection per scrape (prometheus-community#931) Fixes prometheus-community#921 Signed-off-by: Joe Adams <github@joeadams.io> * Bump golang.org/x/net from 0.10.0 to 0.17.0 (prometheus-community#936) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.10.0 to 0.17.0. - [Commits](golang/net@v0.10.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Release v0.15.0 (prometheus-community#944) * [ENHANCEMENT] Add 1kB and 2kB units prometheus-community#915 * [BUGFIX] Add error log when probe collector creation fails prometheus-community#918 * [BUGFIX] Fix test build failures on 32-bit arch prometheus-community#919 * [BUGFIX] Adjust collector to use separate connection per scrape prometheus-community#936 Signed-off-by: SuperQ <superq@gmail.com> * Update common Prometheus files (prometheus-community#951) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Update common Prometheus files (prometheus-community#963) Signed-off-by: prombot <prometheus-team@googlegroups.com> * pg_replication_slot: add slot type label (prometheus-community#960) Signed-off-by: Alex Simenduev <shamil.si@gmail.com> * Bump github.com/prometheus/common from 0.44.0 to 0.45.0 (prometheus-community#948) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.44.0 to 0.45.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.44.0...v0.45.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/client_model (prometheus-community#949) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/commits/v0.5.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * pg_stat_database: added support for `active_time` counter (prometheus-community#961) * feat(pg_stat_database): active time metric --------- Signed-off-by: Jiri Sveceny <jiri.sveceny@icloud.com> * Bump golang.org/x/crypto from 0.14.0 to 0.17.0 (prometheus-community#988) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](golang/crypto@v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (prometheus-community#993) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.17.0 to 1.18.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.17.0...v1.18.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * use Info level for excluded databases log message (prometheus-community#1003) This is the only log message which didn't specify a level in the postgres_exporter. I am unsure if this log message should be info or debug, but leaning towards the more important since previously it would just always log. The way I validated this was the only non-leveled logger was via grep. Both of these only returned this callsite previously: git grep 'logger\.Log' git grep '\.Log(' | grep -v level Signed-off-by: Keegan Carruthers-Smith <keegan.csmith@gmail.com> * Add connection limits metrics for pg_roles and pg_database (prometheus-community#997) * Add database connection limits metrics Signed-off-by: Jocelyn Thode <jocelyn@thode.email> * Add roles connection limits metrics Signed-off-by: Jocelyn Thode <jocelyn@thode.email> * Fix copyright year Co-authored-by: Joe Adams <github@joeadams.io> Signed-off-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> * Fix spacing in pgDatabaseQuery Co-authored-by: Joe Adams <github@joeadams.io> Signed-off-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> * Fix case on pgRolesConnectionLimitsQuery Co-authored-by: Joe Adams <github@joeadams.io> Signed-off-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> * Do not add roleMetrics when row is not valid Signed-off-by: Jocelyn Thode <jocelyn@thode.email> --------- Signed-off-by: Jocelyn Thode <jocelyn@thode.email> Signed-off-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> Co-authored-by: Joe Adams <github@joeadams.io> * Bump github.com/DATA-DOG/go-sqlmock from 1.5.0 to 1.5.2 (prometheus-community#1000) Bumps [github.com/DATA-DOG/go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) from 1.5.0 to 1.5.2. - [Release notes](https://github.com/DATA-DOG/go-sqlmock/releases) - [Commits](DATA-DOG/go-sqlmock@v1.5.0...v1.5.2) --- updated-dependencies: - dependency-name: github.com/DATA-DOG/go-sqlmock dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 (prometheus-community#1011) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.18.0 to 1.19.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.19.0/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.18.0...v1.19.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 (prometheus-community#1010) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](prometheus/client_model@v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (prometheus-community#1014) Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/exporter-toolkit from 0.10.0 to 0.11.0 (prometheus-community#992) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.10.0 to 0.11.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](prometheus/exporter-toolkit@v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump golang.org/x/net from 0.20.0 to 0.23.0 (prometheus-community#1021) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.20.0 to 0.23.0. - [Commits](golang/net@v0.20.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: Add safe_wal_size and wal_status to replication_slot (prometheus-community#1027) * feat: Add safe_wal_size to replication_slot Signed-off-by: MarcWort <113890636+MarcWort@users.noreply.github.com> * feat: Add wal_status to replication_slot Signed-off-by: MarcWort <113890636+MarcWort@users.noreply.github.com> --------- Signed-off-by: MarcWort <113890636+MarcWort@users.noreply.github.com> * fix: Only query active_time on pg>=14 (prometheus-community#1045) Signed-off-by: MarcWort <113890636+MarcWort@users.noreply.github.com> * Update README.md (prometheus-community#1038) Better example for the quick start with prometheus config and avoiding deprecated env variables. Signed-off-by: fhackenberger <florian@hackenberger.at> * stop logging errors on replicas, fixes prometheus-community#547 (prometheus-community#1048) Signed-off-by: Steffen Zieger <github@saz.sh> * Update common Prometheus files (prometheus-community#983) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Update common Prometheus files (prometheus-community#1076) Signed-off-by: prombot <prometheus-team@googlegroups.com> * chore!: adopt log/slog, drop go-kit/log (prometheus-community#1073) * ci: update go to version 1.23 Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> * build(deps): bump prometheus/{client_golang,common,exporter-toolkit} Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> * chore!: adopt log/slog, drop go-kit/log The bulk of this change set was automated by the following script which is being used to aid in converting the various exporters/projects to use slog: https://gist.github.com/tjhop/49f96fb7ebbe55b12deee0b0312d8434 Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> --------- Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> Co-authored-by: Ben Kochie <superq@gmail.com> * Bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 (prometheus-community#1079) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.4 to 1.20.5. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.20.4...v1.20.5) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/common from 0.60.0 to 0.60.1 (prometheus-community#1080) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.60.0 to 0.60.1. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](prometheus/common@v0.60.0...v0.60.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Make walreceiver collector useful w/o repmgr (prometheus-community#1086) In a streaming replication setup that was created without replication manager (`repmgr`), the `stat_wal_receiver` collector does not return any metrics, because one value it wants to export is not present. This is rather overly opinionated. The missing metric is comparatively uninteresting and does not justify discarding all the others. And replication setups created without `repmgr` are not exactly rare. This commit makes the one relevant metric optional and simply skips it if the respective value cannot be determined. Signed-off-by: Conrad Hoffmann <ch@bitfehler.net> * Update common Prometheus files (prometheus-community#1083) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Bump github.com/prometheus/exporter-toolkit from 0.13.0 to 0.13.1 (prometheus-community#1081) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.13.0 to 0.13.1. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](prometheus/exporter-toolkit@v0.13.0...v0.13.1) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update common Prometheus files (prometheus-community#1087) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Update changelog and version for a v0.16.0 release (prometheus-community#1088) Signed-off-by: Joe Adams <github@joeadams.io> * Fix version header in changelog (prometheus-community#1089) Signed-off-by: Joe Adams <github@joeadams.io> * Update pg_long_running_transactions.go (prometheus-community#1092) To extract time in seconds for pg_long_running_transactions_oldest_timestamp_seconds query which currently return epoch time. Signed-off-by: Jyothi Kiran Thammana <147131742+jyothikirant-sayukth@users.noreply.github.com> * Fix to replace dashes with underscore in the metric names (prometheus-community#1103) * Fix to replace dashes with underscore in the metric names Signed-off-by: aagarwalla-fx <arpit.agarwalla@falconx.io> * Code style fix Signed-off-by: aagarwalla-fx <arpit.agarwalla@falconx.io> --------- Signed-off-by: aagarwalla-fx <arpit.agarwalla@falconx.io> * Bump github.com/prometheus/exporter-toolkit from 0.13.1 to 0.13.2 (prometheus-community#1108) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.13.1 to 0.13.2. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](prometheus/exporter-toolkit@v0.13.1...v0.13.2) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Checkpoint related columns in PG 17 have been moved from pg_stat_bgwriter to pg_stat_checkpointer (prometheus-community#1072) * Checkpoint related columns in PG 17 have been moved from pg_stat_bgwriter to pg_stat_checkpointer Fix prometheus-community#1060 See: https://www.dbi-services.com/blog/postgresql-17-new-catalog-view-pg_stat_checkpointer/ Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> * Add support for pg_stat_checkpointer See: https://www.dbi-services.com/blog/postgresql-17-new-catalog-view-pg_stat_checkpointer/ Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> * Run integration tests with Postgres 17 Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> * Update date in file header Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> --------- Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> * Update common Prometheus files (prometheus-community#1090) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Update common Prometheus files (prometheus-community#1110) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Add Postgres 17 for CI test (prometheus-community#1105) Signed-off-by: Khiem Doan <doankhiem.crazy@gmail.com> * Bump github.com/prometheus/common from 0.61.0 to 0.62.0 (prometheus-community#1118) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.61.0 to 0.62.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](prometheus/common@v0.61.0...v0.62.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update common Prometheus files (prometheus-community#1124) Signed-off-by: prombot <prometheus-team@googlegroups.com> * pg_stat_statements PG17 (prometheus-community#1114) Signed-off-by: Nevermind <79126473+NevermindZ4@users.noreply.github.com> * fix: handle pg_replication_slots on pg<13 (prometheus-community#1098) * fix: handle pg_replication_slots on pg<13 Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> * fix: tests Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> --------- Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> * feat: add wait/backend to pg_stat_activity (prometheus-community#1106) Signed-off-by: Felipe Galindo Sanchez <felipe.galindo.sanchez@intel.com> * Export last replay age in replication collector (prometheus-community#1085) The exported replication lag does not handle all failure modes, and can report 0 for replicas that are out of sync and incapable of recovery. A proper replacement for that metric would require a different approach (see e.g. prometheus-community#1007), but for a lot of folks, simply exporting the age of the last replay can provide a pretty strong signal for something being amiss. I think this solution might be preferable to prometheus-community#977, though the lag metric needs to be fixed or abandoned eventually. Signed-off-by: Conrad Hoffmann <ch@bitfehler.net> * Bump github.com/prometheus/exporter-toolkit from 0.13.2 to 0.14.0 (prometheus-community#1126) Bumps [github.com/prometheus/exporter-toolkit](https://github.com/prometheus/exporter-toolkit) from 0.13.2 to 0.14.0. - [Release notes](https://github.com/prometheus/exporter-toolkit/releases) - [Changelog](https://github.com/prometheus/exporter-toolkit/blob/master/CHANGELOG.md) - [Commits](prometheus/exporter-toolkit@v0.13.2...v0.14.0) --- updated-dependencies: - dependency-name: github.com/prometheus/exporter-toolkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix missing dsn sanitization for logging (prometheus-community#1104) This log line was not sanitized previously which could result in logging sensitive information. I have scanned the rest of the files and I don't see anywhere else that DSN is used in a log line without this filter. Resolves prometheus-community#1042 Signed-off-by: Joe Adams <github@joeadams.io> * Skip pg_stat_checkpointer collector if pg<17 (prometheus-community#1112) * fix: skip collector if pg<17 Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> * fix: better condition Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> * fix: fix PGStatCheckpointerCollector tests Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> --------- Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> Co-authored-by: Michael Todorovic <michael.todorovic@outlook.com> * Prep for v0.17 (prometheus-community#1127) Signed-off-by: Joe Adams <github@joeadams.io> * Fix: Handle incoming labels with invalid UTF-8 (prometheus-community#1131) It's possible that incoming labels will contain invalid UTF-8 characters. This results in a panic. This fix sanitizes the label's string to ensure only valid UTF-8 characters are included, by replacing invalid characters with � (REPLACEMENT CHARACTER) Signed-off-by: Cooper Worobetz <cooper@worobetz.ca> * Release v0.17.1 (prometheus-community#1132) * [BUGFIX] Fix: Handle incoming labels with invalid UTF-8 prometheus-community#1131 Signed-off-by: SuperQ <superq@gmail.com> * Bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 (prometheus-community#1133) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.5 to 1.21.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.20.5...v1.21.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update common Prometheus files (prometheus-community#1137) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Bump golang.org/x/net from 0.33.0 to 0.36.0 (prometheus-community#1138) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.33.0 to 0.36.0. - [Commits](golang/net@v0.33.0...v0.36.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update common Prometheus files (prometheus-community#1140) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Update common Prometheus files (prometheus-community#1142) Signed-off-by: prombot <prometheus-team@googlegroups.com> * Adds pg_stat_progress_vacuum collector (prometheus-community#1141) Signed-off-by: Ian Bibby <ian.bibby@reddit.com> Co-authored-by: Ben Kochie <superq@gmail.com> * Update Go (prometheus-community#1147) * Update Go to 1.24. * Update golangci-lint to v2. * Fixup linting issues. Signed-off-by: SuperQ <superq@gmail.com> * Bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1 (prometheus-community#1144) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.21.0 to 1.21.1. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.21.0...v1.21.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-version: 1.21.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/prometheus/common from 0.62.0 to 0.63.0 (prometheus-community#1143) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.62.0 to 0.63.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](prometheus/common@v0.62.0...v0.63.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-version: 0.63.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Record table only size bytes as well in addition to the total size bytes (prometheus-community#1149) * Record table only size bytes as well in addition to the total size bytes Signed-off-by: Felix Yuan <felix.yuan@reddit.com> * Update collector/pg_stat_user_tables.go Co-authored-by: Ben Kochie <superq@gmail.com> Signed-off-by: Felix Yuan <felix.yuan@reddit.com> * Update collector/pg_stat_user_tables.go Co-authored-by: Ben Kochie <superq@gmail.com> Signed-off-by: Felix Yuan <felix.yuan@reddit.com> * Finish renaming elements to index and table size Signed-off-by: Felix Yuan <felix.yuan@reddit.com> --------- Signed-off-by: Felix Yuan <felix.yuan@reddit.com> Co-authored-by: Ben Kochie <superq@gmail.com> * Bump golang.org/x/net from 0.36.0 to 0.38.0 (prometheus-community#1152) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.36.0 to 0.38.0. - [Commits](golang/net@v0.36.0...v0.38.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.38.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: prombot <prometheus-team@googlegroups.com> Signed-off-by: Joe Adams <github@joeadams.io> Signed-off-by: Eric tyrrell <eric.tyrrell18+github@gmail.com> Signed-off-by: Daniel Swarbrick <daniel.swarbrick@gmail.com> Signed-off-by: SuperQ <superq@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Alex Simenduev <shamil.si@gmail.com> Signed-off-by: Jiri Sveceny <jiri.sveceny@icloud.com> Signed-off-by: Keegan Carruthers-Smith <keegan.csmith@gmail.com> Signed-off-by: Jocelyn Thode <jocelyn@thode.email> Signed-off-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> Signed-off-by: MarcWort <113890636+MarcWort@users.noreply.github.com> Signed-off-by: fhackenberger <florian@hackenberger.at> Signed-off-by: Steffen Zieger <github@saz.sh> Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> Signed-off-by: Conrad Hoffmann <ch@bitfehler.net> Signed-off-by: Jyothi Kiran Thammana <147131742+jyothikirant-sayukth@users.noreply.github.com> Signed-off-by: aagarwalla-fx <arpit.agarwalla@falconx.io> Signed-off-by: Nicolas Rodriguez <nico@nicoladmin.fr> Signed-off-by: Khiem Doan <doankhiem.crazy@gmail.com> Signed-off-by: Nevermind <79126473+NevermindZ4@users.noreply.github.com> Signed-off-by: Michael Todorovic <michael.todorovic@outlook.com> Signed-off-by: Felipe Galindo Sanchez <felipe.galindo.sanchez@intel.com> Signed-off-by: Cooper Worobetz <cooper@worobetz.ca> Signed-off-by: Ian Bibby <ian.bibby@reddit.com> Signed-off-by: Felix Yuan <felix.yuan@reddit.com> Co-authored-by: PrometheusBot <prometheus-team@googlegroups.com> Co-authored-by: Joe Adams <github@joeadams.io> Co-authored-by: Eric Tyrrell <58529434+Eric-Tyrrell22@users.noreply.github.com> Co-authored-by: Daniel Swarbrick <daniel.swarbrick@gmail.com> Co-authored-by: Ben Kochie <superq@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Simenduev <shamil.si@gmail.com> Co-authored-by: Jiri Sveceny <jiri.sveceny@icloud.com> Co-authored-by: Keegan Carruthers-Smith <keegan.csmith@gmail.com> Co-authored-by: Jocelyn Thode <jocelynthode@users.noreply.github.com> Co-authored-by: Marc W <113890636+MarcWort@users.noreply.github.com> Co-authored-by: fhackenberger <florian@hackenberger.at> Co-authored-by: Steffen Zieger <me@saz.sh> Co-authored-by: TJ Hoplock <33664289+tjhop@users.noreply.github.com> Co-authored-by: Conrad Hoffmann <1226676+bitfehler@users.noreply.github.com> Co-authored-by: Jyothi Kiran Thammana <147131742+jyothikirant-sayukth@users.noreply.github.com> Co-authored-by: aagarwalla-fx <arpit.agarwalla@falconx.io> Co-authored-by: Nicolas Rodriguez <nico@nicoladmin.fr> Co-authored-by: Khiem Doan <doankhiem.crazy@gmail.com> Co-authored-by: Nevermind <79126473+NevermindZ4@users.noreply.github.com> Co-authored-by: Michael Todorovic <michael.todorovic@outlook.com> Co-authored-by: Felipe Galindo Sanchez <felipe.galindo.sanchez@intel.com> Co-authored-by: vancwo <cooper@worobetz.ca> Co-authored-by: Ian Bibby <470816+ianbibby@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants