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 when parallel logical replication apply workers are active: deduplicatepg_stat_subscriptionby subscription ID and name before aggregating subscription relation states - If a query result omits a configured
LABELcolumn, that collector’s scrape now fails atomically instead of emitting an empty label or retaining 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, allowing direct upgrades - Refresh version and standalone package metadata, add missing-label regression coverage, and validate RPM configuration, artifact names, and compatibility metadata in CI
Upgrade Notes:
- Custom collector SQL must return every
LABELcolumn; the result schema must remain complete even when the query returns zero rows - If automation matches GitHub RPM file names directly, update
pg_exporter-*.rpmtopg-exporter-*.rpm
https://github.com/pgsty/pg_exporter/releases/tag/v1.4.1
v1.4.0
v1.4.0 introduces the Snapshot Histogram metric type and the new pg_xact_age transaction age collector, along with a round of systematic hardening across HTTP routing, packaging, and the build toolchain.
New Features:
- New
HISTOGRAMcolumn type: SQL query snapshots can be aggregated per label group into classic Prometheus histograms, deriving_bucket/_count/_sumseries families; bucket bounds are strictly validated at config load time (finite, strictly increasing,+Infappended automatically),lebecomes a reserved label, and hot reload is fully supported - New
pg_xact_agecollector: exposes the distribution of open transaction age (pg_xact_age_seconds) and idle-in-transaction age (pg_xact_age_idle_seconds) as histograms; cluster-level collection, client backends only, 10s TTL - Default config bundle grows from 57 to 58 definition files;
pg_xact_agetakes slot0450, withpg_lock/pg_lock_stat/pg_queryrenumbered to0460/0470/0480(contents unchanged)
Fixes & Improvements:
- HTTP route registration is isolated to a private ServeMux instead of the global
DefaultServeMux, so endpoints registered by third-party libraries can no longer be exposed accidentally --web.telemetry-pathis strictly validated at startup: empty paths, paths not starting with/, paths containing?#{}, conflicts with built-in endpoints, and non-canonical paths like//metricsthat could never be matched all fail fast with a clear error- The landing page HTML-escapes the telemetry path
- The primary connection pool is properly closed when
--fail-fastpre-check fails - RPM / DEB packaging fixes (#105): the
prometheussystem user’s HOME now points to/var/lib/prometheus(where libpq looks for~/.pgpass), and the packaged default URL gains the/postgresdatabase name so libpq no longer falls back to a database named after the OS user - Version string unified with the
vprefix:--versionoutput, the/versionendpoint, and thepg_exporter_build_info{version=...}label of official release binaries now reportv1.4.0(GoReleaser artifacts previously reported unprefixed1.3.0); artifact file names, package versions, and Docker image tag conventions are unchanged - Histogram value casting aligned with the scalar path: timestamp and boolean columns are exempt from
scale - GoReleaser embedded package metadata corrected: supported range updated to PostgreSQL
9.x - 19+and pgBouncer1.8 - 1.25+ make dockerrestoresGOPROXY/GOSUMDBbuild-arg passthrough
Engineering & Build:
- Build toolchain updated to Go
1.26.5, exporter-toolkitv0.17.1, and prometheus/commonv0.70.0 - New regular CI verification workflow: module tidy check, generated-config drift check (
make confoutput must stay in sync withconfig/*.yml), race tests, and six-platform cross-builds - Docker build tooling consolidated: the
docker/scripts andmake docker-releaseare removed; multi-arch release images are built by GoReleaser - Config coverage tests generalized: tests no longer assume specific collectors exist in the config directory, making trimmed custom bundles easier to maintain
Upgrade Notes:
- If you were running with a non-canonical telemetry path (e.g.
//metrics), the process will now refuse to start — previously it started but the metrics endpoint was silently unreachable - Automation that parses the
versionlabel ofpg_exporter_build_infoor the--versionoutput needs to accommodate thevprefix - When any
HISTOGRAMcollector is configured,lecan no longer be used as 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, and refreshes the default collector bundle, build toolchain, and config 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 is a routine maintenance release that only refreshes the release toolchain to Go 1.26.2. It does not introduce new collectors, config semantics, or runtime behavior changes.
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 lightweight maintenance release focused on release engineering, config package consistency, and documentation/metadata refresh. It does not introduce new collector semantics or runtime behavior changes.
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 is a stability-and-compatibility focused minor release across startup flow, hot reload, health probing, config validation, and legacy support.
New Features:
- Add robust hot reload workflow: support platform-specific reload signals (
SIGHUP/SIGUSR1) and strengthenPOST /reloadto refresh configs and query plans without process restart - Switch startup to non-blocking mode: HTTP endpoints come up first even when target precheck fails, making recovery and monitoring integration smoother
- Add PostgreSQL 9.1-9.6 legacy config bundle: provide
legacy/configs and amake conf9target for easier onboarding of EOL PostgreSQL versions - Rework health probing architecture: use cached health snapshots with periodic probes for more consistent role-based health endpoints and smoother reload behavior
- Improve release engineering baseline: run
go testandgo vetin release workflows and bump build toolchain to Go 1.26.0
Bug Fixes:
- Fix multiple config parsing edge cases: reject malformed metrics entries, return explicit errors when config dirs fail to load valid YAML, and harden runtime fallbacks
- Fix CLI bool flag parsing to correctly handle
--flag=falsestyle arguments - Fix
/explainoutput/rendering behavior by adjusting content type handling and using safer template rendering - Fix predicate query and PG URL handling details: better BOOL/BOOLEAN predicate support, safer row lifecycle handling, and improved
dbnamequery-parameter parsing/redaction - Fix resource cleanup when auto-discovered targets are removed by closing dropped server connections asynchronously
- Fix metric/label validation details including const-label conflict checks, scaled default-value handling, and Prometheus naming/rule checks
Checksums
https://github.com/pgsty/pg_exporter/releases/tag/v1.2.0
v1.1.2
Minor release fixing pg_timeline configuration issue and building with latest go deps
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: Major refactor for PG10-18 compatibility withmissing_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, explicit
::inttype casting
- Add 13 new metrics:
pg_size: Fix log directory size detection, uselogging_collectorcheck instead of path pattern matchingpg_table: Performance optimization, replace LATERAL subqueries with JOIN for better query performance; fixtuplesandfrozenxidmetric type from COUNTER to GAUGE; increase timeout from 1s to 2spg_vacuuming: Add PG17 collector branch with new metricsindexes_total,indexes_processed,dead_tuple_bytesfor index vacuum progress trackingpg_query: Increase timeout from 1s to 2s for high-load scenariospg_io: Fix typo inreusesdescription (“in reused” -> “is reused”)pg_checkpointer: Fix description for pg_checkpointer_10 (“9.4+” -> “9.4-17”)pg_db_confl: Fix description for pg_db_confl_15 (“9.1 - 16” -> “9.1 - 15”)- Format alignment fixes for
pg_db,pg_indexing,pg_clustering,pg_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 latest dependencies
- Dedicate website and homepage: https://exp.pgsty.com
- Release with goreleaser for more os/arch with CI/CD pipeline:
- 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
- Bump go dependencies to the latest version, build with go 1.24.5
- Disable
pg_tsdb_hypertablecollector by default, sincetimescaledbcatalog is 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 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
Security Enhancement: Fix security dependent-bot issue
Add pg16 collectors
Add
arm64&aarch64packagesRemove the
monitorschema requirement forpg_querycollectors (you have to ensure it with search_path or just installpg_stat_statementsin the defaultpublicschema)Fix pgbouncer version parsing message level from info to debug
Fix
pg_table_10_12collector missingrelidissue.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.scale, multiply scale factor when metric value is float/int (e.g µs to second) - 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
- omit citus & timescaledb schemas on object monitoring
- avoid duplicate pg_statio tuples
- support pgbouncer v1.16
- bug fix:
pg_replcollector overlap on pg 12
- new parameter:
-Tconnect-timeoutPG_EXPORTER_CONNECT_TIMEOUTthis can be useful when monitoring remote Postgres instances. - now
pg_exporter.yamlare renamed aspg_exporter.ymlin rpm package.
https://github.com/pgsty/pg_exporter/releases/tag/v0.4.1
v0.4.0
- Add PG 14 support
- Default metrics configuration overhaul. (BUT you can still use the old configuration)
- 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 problems (especially for versions lower than 13)
- setting
primary_conninfonot exists until PG13 - add
funcidlabel topg_funccollector to avoid func name duplicate label - fix 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
- Change default configuration, Support PostgreSQL 13 new metrics (
pg_slru,pg_shmem,pg_query13,pg_backup, etc…) - Add a series of new REST APIs for health / recovery status check
- Add a dummy server with fake
pg_up 0metric, which serves before PgExporter is initialized. - Add
sslmode=disableto URL ifsslmodeis not given - 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 the bug that pg_exporter will hang during start-up if any query is failed.
https://github.com/pgsty/pg_exporter/releases/tag/v0.1.1
v0.1.0
It works, looks good to me.
https://github.com/pgsty/pg_exporter/releases/tag/v0.1.0
v0.0.4
Tested in real world production environment with 200+ nodes for about 2 weeks. Looks good !
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.4
v0.0.3
v0.0.3 Release, Tested in Production Environment
This version is already tested in a production environment.
This project is still under rapid evolution, I would say if you want use it in production , try with caution.
https://github.com/pgsty/pg_exporter/releases/tag/v0.0.3
v0.0.2
It’s ok to try now
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)