Release Notes
The latest stable version of pg_exporter is v1.4.1
| Version | Date | Summary | GitHub |
|---|---|---|---|
| v1.4.1 | 2026-07-29 | Subscription count and label validation fixes; RPM rename | v1.4.1 |
| v1.4.0 | 2026-07-18 | Snapshot histograms, pg_xact_age collector, HTTP hardening | v1.4.0 |
| v1.3.0 | 2026-06-24 | PostgreSQL 19 support, new PG19 collectors and branches | v1.3.0 |
| v1.2.2 | 2026-04-14 | Routine Go 1.26.2 refresh, no functional changes | v1.2.2 |
| v1.2.1 | 2026-03-21 | Config style cleanup, Go 1.26.1 refresh | v1.2.1 |
| v1.2.0 | 2026-02-12 | Hot reload, non-blocking startup, PG9.x legacy support | v1.2.0 |
| v1.1.2 | 2026-01-16 | fix pg_timeline conf issue, build with latest deps | v1.1.2 |
| v1.1.1 | 2025-12-30 | New pg_timeline collector, pg_sub_16 branch, bug fixes | v1.1.1 |
| v1.1.0 | 2025-12-15 | Update default metrics collectors, bump to go 1.25.5 | v1.1.0 |
| v1.0.3 | 2025-11-20 | Routine update on 1.25.4, fix unsupported libpq env | v1.0.3 |
| v1.0.2 | 2025-08-14 | Build for more os arch with goreleaser | v1.0.2 |
| v1.0.1 | 2025-07-17 | DockerHub images, Go 1.24.5, disable pg_tsdb_hypertable | v1.0.1 |
| v1.0.0 | 2025-05-06 | PostgreSQL 18 support, new WAL/checkpointer/I/O metrics | v1.0.0 |
| v0.9.0 | 2025-04-26 | TimescaleDB, Citus, pg_wait_sampling collectors | v0.9.0 |
| v0.8.1 | 2025-02-14 | Dependencies update, docker image tags | v0.8.1 |
| v0.8.0 | 2025-02-14 | PgBouncer 1.24 support, Go 1.24, logging refactor | v0.8.0 |
| v0.7.1 | 2024-12-29 | Routine update, configuration as Reader support | v0.7.1 |
| v0.7.0 | 2024-08-13 | PostgreSQL 17 support, predicate queries feature | v0.7.0 |
| v0.6.0 | 2023-10-18 | PostgreSQL 16 support, ARM64 packages, security fixes | v0.6.0 |
| v0.5.0 | 2022-04-27 | RPM/DEB builds, column scaling, metrics enhancements | v0.5.0 |
| v0.4.1 | 2022-03-08 | Collector updates, connect-timeout parameter | v0.4.1 |
| v0.4.0 | 2021-07-12 | PostgreSQL 14 support, auto-discovery feature | v0.4.0 |
| v0.3.2 | 2021-02-01 | Shadow DSN fixes, documentation updates | v0.3.2 |
| v0.3.1 | 2020-12-04 | Configuration fixes for older PostgreSQL versions | v0.3.1 |
| v0.3.0 | 2020-10-29 | PostgreSQL 13 support, REST APIs, dummy server | v0.3.0 |
| v0.2.0 | 2020-03-21 | YUM packages, configuration reload support | v0.2.0 |
| v0.1.2 | 2020-02-20 | Dynamic configuration reload, bulky mode | v0.1.2 |
| v0.1.1 | 2020-01-10 | Startup hang bug fix | v0.1.1 |
| v0.1.0 | 2020-01-08 | Initial stable release | v0.1.0 |
| v0.0.4 | 2019-12-20 | Production tested release | v0.0.4 |
| v0.0.3 | 2019-12-14 | Production environment testing | v0.0.3 |
| v0.0.2 | 2019-12-09 | Early testing release | v0.0.2 |
| v0.0.1 | 2019-12-06 | Initial release with PgBouncer mode | v0.0.1 |
v1.4.1
v1.4.1 is a maintenance release focused on metric accuracy and RPM upgrade compatibility.
Highlights:
- Fix
pg_subrel_countovercounting with parallel logical replication apply workers. Deduplicatepg_stat_subscriptionby subscription ID and name before aggregating subscription relation states. - If a query result omits a configured
LABELcolumn, fail the entire collector scrape. Do not emit an empty label or keep stale results. Other non-fatal collectors continue normally. - Rename the official RPM package and artifact prefix from
pg_exportertopg-exporter. The new package provides and obsoletes the legacy name to support direct upgrades. - Update version and standalone package metadata. Add regression tests for missing labels. Validate RPM configuration, artifact names, and compatibility metadata in CI.
Upgrade Notes:
- Custom collector SQL must return every
LABELcolumn. The result schema must be complete even if the query returns zero rows. - If automation matches GitHub RPM file names directly, change
pg_exporter-*.rpmtopg-exporter-*.rpm.
https://github.com/pgsty/pg_exporter/releases/tag/v1.4.1
v1.4.0
v1.4.0 adds Snapshot Histogram metrics and the pg_xact_age transaction age collector.
It also improves HTTP routing, packaging, and the build toolchain.
New Features:
- Add the
HISTOGRAMcolumn type. It aggregates SQL snapshots by label group into classic Prometheus histograms with_bucket/_count/_sumseries. Configuration loading validates finite bucket bounds in strictly increasing order and appends+Infautomatically. Thelelabel is reserved. Hot reload is supported. - Add the
pg_xact_agecollector. It returns open transaction age (pg_xact_age_seconds) and idle-in-transaction age (pg_xact_age_idle_seconds) as histograms. It collects cluster-level data from client backends only, with a 10s TTL. - Increase the default bundle from 57 to 58 definition files. Assign
pg_xact_ageto slot0450. Renumberpg_lock/pg_lock_stat/pg_queryto0460/0470/0480without content changes.
Fixes & Improvements:
- Register HTTP routes in a private ServeMux instead of the global
DefaultServeMux. This prevents accidental exposure of endpoints from third-party libraries. - Validate
--web.telemetry-pathat startup. Reject empty paths, paths without a leading/, paths with?#{}, and conflicts with built-in endpoints. Also reject non-canonical paths such as//metrics, which cannot match requests. Each failure returns a clear error immediately. - Escape the telemetry path in the landing page HTML.
- Close the primary connection pool if the
--fail-fastpre-check fails. - Fix RPM / DEB packaging (#105). Set the
prometheususer’s HOME to/var/lib/prometheus, where libpq looks for~/.pgpass. Add/postgresto the packaged default URL. This prevents libpq from using a database named after the OS user. - Use the
vversion prefix consistently. Official release binaries reportv1.4.0in--version,/version, andpg_exporter_build_info{version=...}. GoReleaser artifacts previously reported1.3.0without the prefix. Artifact file names, package versions, and Docker image tag conventions do not change. - Apply the same value conversion rules to histograms and scalar columns. Exclude timestamps and booleans from
scale. - Correct GoReleaser package metadata to show support for PostgreSQL
9.x - 19+and pgBouncer1.8 - 1.25+. - Restore
GOPROXY/GOSUMDBbuild-argument passthrough inmake docker.
Engineering & Build:
- Update the build toolchain to Go
1.26.5, exporter-toolkitv0.17.1, and prometheus/commonv0.70.0. - Add regular CI checks for module tidy, generated configuration, race tests, and six-platform cross-builds. The
make confoutput must matchconfig/*.yml. - Remove the
docker/scripts andmake docker-release. Use GoReleaser to build multi-architecture release images. - Remove assumptions about specific collectors from configuration coverage tests. This makes smaller custom bundles easier to maintain.
Upgrade Notes:
- A non-canonical telemetry path, such as
//metrics, now prevents startup. Previously, the process started but the metrics endpoint was unreachable. - Update automation that parses the
versionlabel ofpg_exporter_build_infoor the--versionoutput to accept thevprefix. - If any collector uses
HISTOGRAM, do not useleas a constant label.
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.4.0/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.4.0
v1.3.0
v1.3.0 adds PostgreSQL 19 support.
It also updates the default collectors, build toolchain, and configuration coverage tests.
Highlights:
- Default support range extended from PostgreSQL 10-18+ to 10-19+
- Default config bundle includes 57
config/*.ymldefinition files - Build dependencies updated to Go
1.26.4,lib/pq v1.12.3, Prometheus clientv1.23.2, and exporter-toolkitv0.16.0 pg_recovery_state: collectpg_stat_recoveryon recovery nodes, exposing promotion trigger status, replay LSN, timeline, recovery transaction time, and pause statepg_lock_stat: collect PG19pg_stat_lock, exposing waits, wait time, and fast-path overflow counts bylocktypepg_vacuum_score: collect the current-database summary frompg_stat_autovacuum_scores, exposing max autovacuum score and candidate table countpg_wal_19: exposewal_fpi_byteson PG19 aspg_wal_fpi_bytespg_sub_19: adapt sequence sync and logical replication conflict stats frompg_stat_subscription_stats, while keepingsync_error_countfor legacy dashboardspg_recv: recognize the PG13+ WAL receiverconnectingstate on PG19pg_slot: recognize the PG19 replication slot invalidation reasonidle_timeoutpg_db_confl: switch to an explicit column list to avoid accidentally exporting future view columnspg_backup,pg_vacuuming, andpg_clusteringcontinue reusing stable existing branches instead of changing the metric surface for low-value PG19 fields
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.3.0/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.3.0
v1.2.2
v1.2.2 updates the release toolchain to Go 1.26.2.
This maintenance release has no changes to collectors, configuration behavior, or runtime behavior.
Highlights
- Refresh the release toolchain: bump release builds to Go
1.26.2 - No functional changes: collector behavior, default configs, metric definitions, and runtime semantics remain unchanged
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.2.2/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.2.2
v1.2.1
v1.2.1 is a maintenance release for release engineering, configuration package consistency, documentation, and metadata.
It has no changes to collector or runtime behavior.
Highlights
- Refresh the build toolchain: bump both release workflows and Docker build images to Go
1.26.1 - Standardize config style: switch inline
descriptionvalues in both current and legacy configs to double-quoted form, and regenerate mergedpg_exporter.yml/legacy/pg_exporter.yml - Add config consistency tests: verify split and merged configs remain equivalent, and check inline metric description style to reduce configuration drift
- Refresh packaging metadata: update RPM / DEB support descriptions to PostgreSQL
9.x - 18+and pgBouncer1.8 - 1.25+, and refresh Pigsty documentation links
Checksums
https://github.com/pgsty/pg_exporter/releases/tag/v1.2.1
v1.2.0
v1.2.0 improves stability and compatibility for startup, hot reload, health probes, configuration validation, and legacy support.
New Features:
- Improve hot reload. Support platform-specific signals (
SIGHUP/SIGUSR1) and improvePOST /reloadto update configuration and query plans without a restart. - Use non-blocking startup. HTTP endpoints start even if the target precheck fails. This improves recovery and monitoring integration.
- Add a legacy configuration bundle for PostgreSQL 9.1-9.6. Use
legacy/and themake conf9target to configure monitoring for EOL versions. - Use cached health snapshots with periodic probes. This improves consistency for role-based health endpoints and reloads.
- Add
go testandgo vetto release workflows. Update the build toolchain to Go 1.26.0.
Bug Fixes:
- Fix configuration parsing cases. Reject malformed metric entries, return explicit errors if a configuration directory has no valid YAML, and improve runtime fallbacks.
- Fix CLI boolean parsing for arguments such as
--flag=false. - Fix
/explainoutput with corrected content types and safer template rendering. - Improve predicate queries and PG URL handling. Improve BOOL/BOOLEAN support, row resource handling, and
dbnamequery-parameter parsing and redaction. - Close connections asynchronously when auto-discovery removes a target.
- Fix metric and label validation. Check constant-label conflicts, scaled default values, and Prometheus naming rules.
Checksums
https://github.com/pgsty/pg_exporter/releases/tag/v1.2.0
v1.1.2
This minor release fixes the pg_timeline configuration and builds with the latest Go dependencies.
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.1.2/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.1.2
v1.1.1
Minor release with new collectors and bug fixes.
New Features:
- New
pg_timelinecollector for timeline monitoring - New
pg_sub_16collector branch to exclude parallel operations in subscriptions (PostgreSQL 16+ compatibility)
Bug Fixes:
- Fix: Add coalesce for slotname in
pg_recvcollector to handle NULL values
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.1.1/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.1.1
v1.1.0
Build with Go 1.25.5 and latest dependencies, collector updates:
Collector Changes:
pg_setting: update PG10-18 compatibility and addmissing_oksupport.- Add 13 new metrics:
max_parallel_workers,max_parallel_workers_per_gather,max_parallel_maintenance_workers,shared_buffers,maintenance_work_mem,effective_cache_size,fsync,full_page_writes,autovacuum,autovacuum_max_workers,checkpoint_timeout,checkpoint_completion_target,hot_standby,synchronous_commit,io_method. - Rename
work_memory_sizetowork_mem. - Change min_version from 9.6 to 10. Use explicit
::inttype conversion.
- Add 13 new metrics:
pg_size: fix log directory size detection. Checklogging_collectorinstead of matching path patterns.pg_table: replace LATERAL subqueries with JOIN to improve performance. Changetuplesandfrozenxidfrom COUNTER to GAUGE. Increase the timeout from 1s to 2s.pg_vacuuming: add a PG17 branch withindexes_total,indexes_processed, anddead_tuple_bytesto track index vacuum progress.pg_query: increase the timeout from 1s to 2s for high-load conditions.pg_io: correct thereusesdescription from “in reused” to “is reused”.pg_checkpointer: correct the pg_checkpointer_10 description from “9.4+” to “9.4-17”.pg_db_confl: correct the pg_db_confl_15 description from “9.1 - 16” to “9.1 - 15”.- Correct format alignment for
pg_db,pg_indexing,pg_clustering, andpg_backup.
Other Changes:
- Fix release year by @anayrat
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.1.0/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.1.0
v1.0.3
- Build with Go 1.25.4 and latest dependencies
- Fix #80 Conflict with libpq env variables
- Change default value of
auto-discoverytotrueby @kadaffy
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.0.3/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.0.3
v1.0.2
- Build with Go 1.25.0 and the latest dependencies.
- Add a dedicated website and homepage: https://exp.pgsty.com
- Use GoReleaser and CI/CD to release for more operating systems and architectures:
- Add Windows amd64 support.
- Add Linux ppc64le support.
Checksums
https://github.com/pgsty/pg_exporter/releases/download/v1.0.2/checksums.txt
https://github.com/pgsty/pg_exporter/releases/tag/v1.0.2
v1.0.1
- Add dockerhub images: pgsty/pg_exporter
- Update Go dependencies to the latest version. Build with Go 1.24.5
- Disable
pg_tsdb_hypertableby default because thetimescaledbcatalog has changed.
Checksums
https://github.com/pgsty/pg_exporter/releases/tag/v1.0.1
v1.0.0
Add PostgreSQL 18 metrics support
- new collector branch
pg_wal_18: - remove
write,sync,write_time,sync_timemetrics - move to
pg_stat_io - new collector branch
pg_checkpointer_18: - new metric
num_done - new metric
slru_written - new collector branch
pg_db_18: - new metric
parallel_workers_to_launch - new metric
parallel_workers_launched - new collector branch
pg_table_18: table_parallel_workers_to_launchtable_parallel_workers_launched- new collector branch
pg_io_18: - new series about WAL statistics
- new metric
read_bytes - new metric
write_bytes - new metric
extend_bytes - remove
op_bytesdue to fixed value - new collector branch
pg_vacuuming_18 - new metric
delay_time
https://github.com/pgsty/pg_exporter/releases/tag/v1.0.0
v0.9.0
Default Collectors
- new metrics collector for
timescaledbhypertable - new metrics collector for
citusdist node - new metrics collector for
pg_wait_samplingwait event profile pg_slotoverhaul: Add 16/17 pg_replication_slot metrics- allow
pg_slotcollector run on replica since 16/17 - refactor
pg_waitcollector to agg from all processes - restrict pg_clustering, pg_indexing, pg_vacuuming run on primary
- mark all
reset_timeasGAUGErather thanCOUNTER - fix
pg_recovery_prefetch_skip_fpwtype fromGAUGEtoCOUNTER - fix
pg_recv.statetype fromLABELtoGAUGE - Format collector in compact mode
- new default metric
pg_exporter_build_info/pgbouncer_exporter_build_info - add
server_encodingtopg_metacollector - add 12 new setting metrics to
pg_settingcollector
- wal_block_size
- segment_size
- wal_segment_size
- wal_level
- wal_log_hints
- work_mem
- hugepage_count
- hugepage_status
- max_wal_size
- min_wal_size
- max_slot_wal_keep_size
Exporter Codebase
- normalize collector branch name with min pg ver suffix
- Add license file to binary packages
- move
pgsty/pg_exporterrepo topgsty/pg_exporter - refactor
server.goto reduceCompatibleandPostgresPrecheckcomplexity - rename metrics collector with extra number prefix for better sorting
- bump dependencies to the latest version
- execute fatal collectors ahead of all non-fatal collectors, and fail fast
https://github.com/pgsty/pg_exporter/releases/tag/v0.9.0
v0.8.1
- Bump dependencies to the latest version
- Bump golang.org/x/net from 0.35.0 to 0.36.0 #67
- Update docker images building tags
https://github.com/pgsty/pg_exporter/releases/tag/v0.8.1
v0.8.0
- Add PgBouncer 1.24 new metrics support (stat, pool, database)
- Fix:
310-pg_size.ymlfails if log dir not set properly #64 by @Süleyman Vurucu - Build with the latest Go 1.24 and bump all dependencies
- Refactor logging with the standard
log/sloginstead ofgo-kit - Full Changelog: https://github.com/pgsty/pg_exporter/compare/v0.7.1...v0.8.0
https://github.com/pgsty/pg_exporter/releases/tag/v0.8.0
v0.7.1
Routine update with dependabot
- Feat: support specifying configuration as Reader by @ringerc in #62
- Bump golang.org/x/crypto from 0.21.0 to 0.31.0 by @dependabot in #63
- Fix some typos
- Full Changelog: https://github.com/pgsty/pg_exporter/compare/v0.7.0...v0.7.1
https://github.com/pgsty/pg_exporter/releases/tag/v0.7.1
v0.7.0
Refactor the codebase for the latest Go version.
- PostgreSQL 17 Metrics Support by @Vonng
- pg_exporter: predicate queries feature by @ringerc
- Do a clean build in the dockerfile by @ringerc by @ringerc
- pg_exporter: don’t panic after “bind: address already in use” by @ringerc
- pg_exporter: fix /stat endpoint formatting by @ringerc
- pg_exporter: omit default query properties on yaml export by @ringerc
- Exclude template DBs from discovery and schema-qualify discovery query by @ringerc
- Fix some typos and some metric description mistakes by @ringerc
- Switch from unmaintained lib/pq driver to pgx with stdlib wrapper by @ringerc
https://github.com/pgsty/pg_exporter/releases/tag/v0.7.0
v0.6.0
Fix Dependabot security issues.
Add pg16 collectors.
Add
arm64&aarch64packages.Remove the
monitorschema requirement forpg_querycollectors. Set search_path to findpg_stat_statements, or install it in the defaultpublicschema.Change the pgBouncer version parsing message level from info to debug.
Fix the missing
relidin thepg_table_10_12collector.Recognize the files with yml suffix in config directory by @Japin Li
https://github.com/pgsty/pg_exporter/releases/tag/v0.6.0
v0.5.0
Exporter Enhancement
- Build rpm & deb with
nfpm - Add
column.default, replace when metric value is NULL - Add
column.scaleto multiply float/int values by a scale factor, such as conversion from µs to seconds - Fix
/statendpoint output - Add docker container
pgsty/pg_exporter
Metrics Collector
- scale bgwriter & pg_wal time unit to second
- remove pg_class collector and move it to pg_table & pg_inex
- add pg_class metrics to pg_table
- add pg_class metrics to pg_index
- enable pg_table_size by default
- scale pg_query pg_db pg_bgwriter pg_ssl pgbouncer_stat time metrics to second
https://github.com/pgsty/pg_exporter/releases/tag/v0.5.0
v0.4.1
- Update default collectors:
- Exclude citus & timescaledb schemas from object monitoring.
- Prevent duplicate pg_statio tuples.
- Support pgBouncer v1.16.
- Fix overlapping
pg_replcollectors on pg 12.
- Add the
-Tconnect-timeoutPG_EXPORTER_CONNECT_TIMEOUTparameter for remote PostgreSQL monitoring. - Rename
pg_exporter.yamltopg_exporter.ymlin the RPM package.
https://github.com/pgsty/pg_exporter/releases/tag/v0.4.1
v0.4.0
- Add PG 14 support
- Update the default metrics configuration. The old configuration remains supported
- add
auto-discovery,include-databaseandexclude-databaseoption - Add multiple database monitoring implementations (with
auto-discovery = on)
https://github.com/pgsty/pg_exporter/releases/tag/v0.4.0
v0.3.2
- fix shadow DSN corner case
- fix typo & docs
https://github.com/pgsty/pg_exporter/releases/tag/v0.3.2
v0.3.1
Fix default configuration errors, particularly for versions before 13.
- Account for the
primary_conninfosetting being available only from PG13. - Add the
funcidlabel topg_functo prevent duplicate labels from function names. - Fix the version string to
pg_exporter.
https://github.com/pgsty/pg_exporter/releases/tag/v0.3.1
v0.3.0
https://github.com/pgsty/pg_exporter/releases/tag/v0.3.0
- Update the default configuration to support PostgreSQL 13 metrics, including
pg_slru,pg_shmem,pg_query13, andpg_backup. - Add REST APIs for health and recovery status checks.
- Add a dummy server that returns
pg_up 0before PgExporter initialization. - Add
sslmode=disableto the URL ifsslmodeis absent. - Fix typos and bugs.
v0.2.0
- add yum package and linux service definition
- add a ‘skip’ flag into query config
- fix
pgbouncer_upmetrics - add conf reload support
https://github.com/pgsty/pg_exporter/releases/tag/v0.2.0
v0.1.2
- fix pgbouncer_up metrics
- add dynamic configuration reload
- remove ‘shard’ related logic
- add a ‘bulky’ mode to default settings
https://github.com/pgsty/pg_exporter/releases/tag/v0.1.2
v0.1.1
Fix a startup hang that occurs if any query fails.
https://github.com/pgsty/pg_exporter/releases/tag/v0.1.1
v0.1.0
This is the first stable release.
https://github.com/pgsty/pg_exporter/releases/tag/v0.1.0
v0.0.4
This release passed production tests on 200+ nodes for about 2 weeks.
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.4
v0.0.3
v0.0.3 passed production tests.
This version is already tested in a production environment.
The project changes rapidly. Use this version with caution in production.
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.3
v0.0.2
This version is ready for testing.
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.2
v0.0.1
Add pgBouncer mode
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.1
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)