This is the multi-page printable view of this section. .
Release Notes
- 1: PG Exporter v1.4.1
- 2: PG Exporter v1.4.0
- 3: PG Exporter v1.3.0
- 4: PG Exporter v1.2.2
- 5: PG Exporter v1.2.1
- 6: PG Exporter v1.2.0
- 7: PG Exporter v1.1.2
- 8: PG Exporter v1.1.1
- 9: PG Exporter v1.1.0
- 10: PG Exporter v1.0.3
- 11: PG Exporter v1.0.2
- 12: PG Exporter v1.0.1
- 13: PG Exporter v1.0.0
- 14: PG Exporter v0.9.0
- 15: PG Exporter v0.8.1
- 16: PG Exporter v0.8.0
- 17: PG Exporter v0.7.1
- 18: PG Exporter v0.7.0
- 19: PG Exporter v0.6.1
- 20: PG Exporter v0.6.0
- 21: PG Exporter v0.5.0
- 22: PG Exporter v0.4.1
- 23: PG Exporter v0.4.0
- 24: PG Exporter v0.3.2
- 25: PG Exporter v0.3.1
- 26: PG Exporter v0.3.0
- 27: PG Exporter v0.2.0
- 28: PG Exporter v0.1.2
- 29: PG Exporter v0.1.1
- 30: PG Exporter v0.1.0
- 31: PG Exporter v0.0.5
- 32: PG Exporter v0.0.4
- 33: PG Exporter v0.0.3
- 34: PG Exporter v0.0.2
- 35: PG Exporter v0.0.1
This archive contains one article for every pg_exporter repository tag, newest first: 35 tagged versions from v0.0.1 through v1.4.1.
GitHub currently has 33 formal Release objects. The two early tag-only versions, v0.0.1 and v0.0.5, are preserved here as historical notes and are clearly marked inside their articles. Dates use the GitHub publication timestamp when a Release exists, otherwise the source tag timestamp, normalized to Asia/Shanghai (UTC+08:00).
Download current artifacts from the latest GitHub Release, or use the download guide to compare package repositories, archives, containers, Pigsty, and source builds.
1 - PG Exporter 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
2 - PG Exporter 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
3 - PG Exporter 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
4 - PG Exporter 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
5 - PG Exporter 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
6 - PG Exporter 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
7 - PG Exporter 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
8 - PG Exporter 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
9 - PG Exporter 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
10 - PG Exporter 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
11 - PG Exporter 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
12 - PG Exporter v1.0.1
- Add Docker Hub 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
13 - PG Exporter v1.0.0
Changes
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
14 - PG Exporter 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
15 - PG Exporter v0.8.1
Changes
- 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
16 - PG Exporter v0.8.0
Changes
- 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
17 - PG Exporter v0.7.1
Changes
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
18 - PG Exporter v0.7.0
Changes
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
19 - PG Exporter v0.6.1
Changes
- Update
golang.org/x/netfromv0.10.0tov0.17.0to pick up security fixes (#38) - Fix
connect-timeoutpropagation (#37), contributed by @mouchar - Recognize both
.yamland.ymlfiles in a configuration directory (#34), contributed by @japinli
Checksums
The original release published MD5 checksums for its archives and packages:
20 - PG Exporter v0.6.0
Changes
-
Security enhancement: update dependencies to address reported vulnerabilities
-
Add pg16 collectors
-
Add
arm64&aarch64packages -
Remove 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
21 - PG Exporter 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
22 - PG Exporter v0.4.1
Changes
- 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.
23 - PG Exporter v0.4.0
Changes
- 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)
24 - PG Exporter v0.3.2
Changes
- fix shadow DSN corner case
- fix typo & docs
25 - PG Exporter v0.3.1
Changes
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
26 - PG Exporter v0.3.0
Changes
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
27 - PG Exporter v0.2.0
Changes
- add yum package and linux service definition
- add a ‘skip’ flag into query config
- fix
pgbouncer_upmetrics - add conf reload support
28 - PG Exporter v0.1.2
Changes
- fix pgbouncer_up metrics
- add dynamic configuration reload
- remove ‘shard’ related logic
- add a ‘bulky’ mode to default settings
29 - PG Exporter v0.1.1
Changes
Fix the bug that pg_exporter will hang during start-up if any query is failed.
30 - PG Exporter v0.1.0
Changes
It works, looks good to me.
31 - PG Exporter v0.0.5
This is an early repository tag without a separate GitHub Release object. This archival note is based on the tag commit and historical release summary.
Changes
- Add per-collector query timeouts
- Replace the earlier
skip_errorbehavior with thefatalcollector policy - Revise collector priority semantics
- Fix the built-in
pg_upmetric - Add documentation for each bundled collector
This historical version exists as a repository tag but was not published as a separate GitHub Release object.
32 - PG Exporter v0.0.4
Changes
Tested in real world production environment with 200+ nodes for about 2 weeks. Looks good !
33 - PG Exporter v0.0.3
Changes
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.
34 - PG Exporter v0.0.2
Changes
It’s ok to try now
35 - PG Exporter v0.0.1
This is an early repository tag without a separate GitHub Release object. This archival note is based on the tag commit and historical release summary.
Changes
Add PgBouncer mode