Skip to content

This is the multi-page printable view of this section. .

Return to the regular view of this page.

Release Notes

A bilingual release note for every pg_exporter repository tag

This archive covers all 36 repository tags, from v0.0.1 to v1.6.0, with one English and Chinese note per version.

Of these versions, 34 have GitHub Releases; v0.0.1 and v0.0.5 have Git tags only. Dates use the release time, or the commit time for tag-only versions, in Asia/Shanghai (UTC+08:00).

For current packages and installation commands, use Downloads.

1 - PG Exporter v1.6.0

Independent health probes, bounded scrapes, correct cross-database progress labels, and container CA roots

PG Exporter v1.6.0 separates health probes from collection, bounds overlapping metrics requests, preserves completed bounded refreshes after client cancellation, and corrects cross-database progress labels. It also supplies container trust roots and updates dependencies. The Go toolchain remains 1.27.3 and the PostgreSQL driver remains lib/pq 1.12.3.

Changes

  • Independent health probes: slow metrics collection no longer blocks the background probe. Completing a scrape no longer overwrites a newer reachability or role observation. After initialization, HTTP health is written only by the probe; pg_up and pg_in_recovery remain collection results. A reachable database can return /up HTTP 200 even when a fatal collector makes pg_up zero.
  • Controlled overlapping scrapes: at most two metrics requests are admitted, including waiting and response writing. Collection remains serial. The second request can wait and reuse caches; extra requests receive HTTP 503. Waiting can be canceled without starting SQL. The request budget is 30 seconds, shortened by a valid positive finite Prometheus scrape-timeout header.
  • Collector-level cancellation: request cancellation prevents the next collector or database from starting. A collector already running with a positive timeout continues its predicates and main SQL under one shared deadline, then caches its result normally. This prevents a departing client from turning a healthy bounded refresh into a failure cached for other scrapers. A negative timeout removes the collector deadline and lets the request cancel its SQL.
  • Clearer interruption accounting: interrupted passes have an INFO interrupted summary and do not increment exporter/server scrape-error counts. Availability preserves the previous value, or becomes true after a successful precheck. Non-interrupted connection and fatal collector failures still count. Query-error statistics and fatal-query ERROR logs remain unchanged.
  • Correct progress labels: pg_vacuuming, pg_indexing, and pg_clustering retain cluster-wide coverage and three queries per refresh. Relations in the connected database and system catalogs resolve to names; user relations in other databases use numeric OIDs in relname, retaining datname and pid. An unrelated local relation can no longer supply a misleading name. Discovery filters or a lack of CONNECT do not filter out visible progress rows.
  • Container trust: both scratch-image build paths include the system CA bundle and license. Public CA verification can use the bundled trust store. Private CAs still require an explicit mount and sslrootcert; the default TLS mode is unchanged.
  • Dependencies and validation: YAML moves from v3 to v4 with the existing collector syntax retained. Prometheus common/procfs, golang.org/x/net, and supporting dependencies are updated. CI verifies container payload/TLS behavior and inspects all DEB architectures, in addition to RPM compatibility and checksums.
  • Collector descriptions: help text now distinguishes I/O bytes and operations, completed checkpoints, vacuum dead-tuple memory, and CLUSTER progress. SQL metric names, label keys, types, and units are unchanged on the same PostgreSQL version.

Upgrade notes

  1. Upgrade the configuration with the binary. Merge the new pg_exporter.yml or split YAML files; package upgrades preserve local configuration. A binary-only upgrade does not fix progress SQL. The bundle still contains 58 YAML files, 96 branches, 59 namespaces, and 460 distinct metric definitions, including disabled collectors and two unexpanded histograms.
  2. Check progress-label consumers. Cross-database relname values can change from an incorrect name to an OID, creating new time series. Preserve database and task identity in dashboards. Names in the connected database and names of system catalogs remain readable.
  3. Choose the right health signal. /up and role endpoints reflect the latest health probe. pg_up reflects main-target collection, including fatal collector failures. Non-fatal and child-database errors require their query/server metrics. --disable-intro hides all built-in metrics, including pg_up, while HTTP health remains available.
  4. Allow the PgBouncer probe connection. The main PgBouncer pool maximum changes from one to two connections. PostgreSQL keeps three on the main target and one per discovered database.
  5. Keep positive timeouts on fatal collectors. Canceling a negative-timeout fatal query caches its failure for the normal TTL. A subsequent live scrape can count that cached failure and return pg_up 0 until a successful refresh. TTL zero or --disable-cache still forces a refresh on every scrape.
  6. Review scrape concurrency and budgets. Excess requests or interrupted collection can return 503. A started bounded collector can extend work beyond the request budget, normally by up to its own timeout. Network stalls can last longer; neither timeout is a hard wall-clock guarantee, and connection handshakes need an appropriate DSN connect_timeout.

A real error coinciding with request cancellation can be omitted from the two pass-error counters because classification uses both the pass error and the request context. Query-level failures remain visible. A first scrape interrupted before a successful precheck leaves pg_up at zero until later recovery. Failure TTL, reload behavior, and immediate SIGTERM exit remain unchanged; this release does not add background refresh or graceful shutdown.

For upgrades from v1.4.1 or earlier, the v1.5.0 migration notes still apply, including subscription labels, receiver-state mappings, and PostgreSQL 10–13 monitoring grants. See metric compatibility, HTTP API, and scrape lifetime for the operating contracts.

Verification scope

Release validation covers the full race suite, both HTTP mux modes, module/generated-config consistency, static checks, six target builds, container TLS/payload checks, and package validation. Three cancellation regressions also passed 200 consecutive race-detector runs. The earlier reverse control failed with the interruption fix removed. On PostgreSQL 18.6, leaving during a bounded 0.8-second fatal query kept both pass-error counters at zero; the next scrape returned pg_up 1 and the cached metric without repeating the SQL.

Progress SQL variants were checked as a monitoring role on PostgreSQL 12, 17, and 18; the system-catalog follow-up and real cross-database VACUUM were verified on 18.6. These are scoped acceptance results, not a new exhaustive audit of every PostgreSQL release, extension, dashboard, or production workload. Composite, Patroni, pgBackRest, and PostgreSQL-log components remain on the separate snort development line and are not included in v1.6.0.

2 - PG Exporter v1.5.0

Go 1.27.3, security updates, correct replication identity, safer target URLs, and consistent runtime state

PG Exporter v1.5.0 updates the Go toolchain and dependencies, fixes replication collector identity and state mappings, and closes six runtime defects around target URLs, discovery, health, collector planning, durations, and HTTP routing.

The bundle still contains 58 YAML files, 96 collector branches, 59 namespaces, and 460 distinct metric definitions. The metric count spans all version branches, including disabled collectors and two unexpanded SQL histograms; it is not a promise of 460 series in each scrape.

Changes

  • Safer connection URLs: malformed URL syntax, query escaping, or unsafe decoded parameter names stop startup without exposing the original connection string. Explicit TLS options can no longer disappear silently when malformed parameters are normalized. An empty or whitespace-only selected PG_EXPORTER_URL_FILE also fails startup.
  • Correct database discovery: database identity follows lib/pq, including the dbname and database aliases. Discovery removes conflicting database parameters when substituting a database path and preserves special characters. This prevents repeated collection of one database, duplicate samples, and resulting HTTP 500 responses.
  • Consistent health responses: each response derives its status code and body from one atomic state snapshot. Concurrent probes, scrapes, and reloads can no longer combine HTTP 200 with a down or starting body. Health still reports cached target state.
  • Collector plans follow metadata: changes to the connected user, schema set, or extension set invalidate the plan after a successful metadata precheck. New eligible collectors appear on the next scrape; removed dependencies stop selecting collectors. Unchanged sets preserve their caches.
  • Bounded configuration durations: YAML TTLs, timeouts, and predicate TTLs reject NaN, infinity, and positive duration overflow. Zero/default semantics and finite negative timeouts that disable deadlines remain unchanged.
  • Reachable metrics paths: startup checks the actual metrics handler selected by the active HTTP mux, including decoded paths and redirects. A path cannot pass validation while routing to the homepage or a redirect.
  • Replication identity and states: every pg_sub_* sample gains a datname label, distinguishing subscriptions with the same name in different databases. pg_recv_state uses the actual receiver states, and its legacy query uses PG9.6-compatible substring().
  • More precise collector descriptions: document optional replication-origin permissions, publication table counts versus subscription table/sequence counts, and pg_backend grouping by backend type. These description changes do not add metric families or enable optional collectors.

Metric and dashboard compatibility

Compared with v1.4.1 on the same PostgreSQL version, v1.5.0 does not add, remove, or rename bundled SQL metric names. Types and units remain unchanged, but labels and state mappings do change. PostgreSQL 19 support first shipped in v1.3.0; upgrading the database can also change the selected SQL branch and a metric’s meaning.

Scope Metrics Compatibility action
v1.5.0 configuration pg_sub_* Adds datname to every sample. Keep database and subscription identity in joins and aggregations; new label sets create new time series.
v1.5.0 configuration pg_recv_state Real receiver states starting, waiting, restarting, and stopped now map to 6–9 instead of -1. Update value mappings and state alerts; codes 1–3 are reserved.
PG18 → PG19 Existing PG18 metric names None are removed or renamed by the PG19 branches in this bundle. This does not guarantee unchanged semantics or labels from PostgreSQL itself.
PG19 pg_sub_sync_error_count Keeps the name but becomes the sum of table and sequence synchronization errors. For table-only alerts, use pg_sub_sync_table_error_count; pg_sub_sync_seq_error_count reports the sequence component. Do not double-count the components and their sum.
PG19 pg_sub_has_worker, pg_sub_reset_time, pg_sub_confl_* Adds worker presence, reset time, and eight conflict counters. The subscription row can remain without an apply worker; metric presence alone is not a worker-health check.
PG19 pg_subrel_count Includes sequences as well as tables; pg_pubrel_count still counts tables only. Review panel labels and count comparisons.
PG19 pg_wal_fpi_bytes, pg_lock_stat_*, pg_recovery_state_*, pg_vacuum_score_* Additive metrics. Recovery state is replica-only; autovacuum scores are primary-only. Existing WAL, lock-distribution, and recovery families remain.

Users upgrading from PG17 or earlier must also migrate older names: checkpoint metrics left pg_bgwriter_* in PG17, and pg_wal_write, pg_wal_sync, pg_wal_write_time, and pg_wal_sync_time are absent from PG18 onward. The full compatibility guide lists each replacement, label/aggregation differences, and mixed-version PromQL.

Before rollout, evaluate the actual dashboard and alert expressions and test missing-series input. A successful scrape does not ensure every expected metric exists; an empty alert expression can silently stop firing. The missing-metric checks include a per-target rule and explain when absence is expected. The full PG19 metric table links to the tagged collector definitions; PostgreSQL validation remains scoped to 19 RC1.

Toolchain and dependencies

Component v1.4.1 v1.5.0
Go 1.26.5 1.27.3
prometheus/client_golang 1.23.2 1.25.0
prometheus/common 0.70.0 0.72.1
prometheus/exporter-toolkit 0.17.1 0.20.0
golang.org/x/net 0.57.0 0.61.0
golang.org/x/crypto 0.54.0 0.58.0
golang.org/x/text 0.40.0 0.43.0

The database driver remains lib/pq 1.12.3. There is no driver migration or new optional data source in this release. Prometheus client/model/procfs, YAML, compression, OAuth2, and other transitive modules are also refreshed; a version bump alone is not evidence that an application CVE was fixed.

Security updates

The upgrade incorporates upstream security fixes; it does not mean every listed CVE was exploitable through PG Exporter. The comparison below uses the v1.4.1 source and dependencies with Go 1.26.5. S means a static symbol match, P an imported-package match without an affected-symbol call, and M a module match whose affected package is not imported. Symbol matches can be conservative and are not attack reproductions.

Go standard library and build tools

Go 1.27.3 includes CVE-2026-111943, which adds an X.509 denylist for untrusted intermediate certificates, plus cumulative HTTP, TLS, template, and parser fixes. The following affected standard-library entries were present in the old baseline; the match column is from Darwin/arm64 and platform-specific preconditions still apply.

CVE Component First fixed version Old baseline match
CVE-2026-39821 net/http, net/http/internal/http2 1.26.6, 1.27.0-rc.3 P
CVE-2026-46600 net 1.26.6, 1.27.0-rc.3 P
CVE-2026-33818 encoding/asn1 1.26.6, 1.27.0-rc.3 S
CVE-2026-56859 encoding/xml 1.26.6, 1.27.0-rc.3 M
CVE-2026-56853 net/http 1.26.6, 1.27.0-rc.3 S
CVE-2026-56862 crypto/tls 1.26.6, 1.27.0-rc.3 S
CVE-2026-56858 html/template 1.26.6, 1.27.0-rc.3 S
CVE-2026-56860 net/url 1.26.6, 1.27.0-rc.3 P
CVE-2026-94448 html/template 1.26.9, 1.27.2 S
CVE-2026-97030 html/template 1.26.9, 1.27.2 S
CVE-2026-78659 net/http, net/http/internal/http2 1.26.9, 1.27.2 S
CVE-2026-56857 internal/syscall/windows, os 1.26.9, 1.27.2 P
CVE-2026-56866 net/http, net/http/httputil 1.26.9, 1.27.2 P
CVE-2026-97031 crypto/tls 1.26.9, 1.27.2 S
CVE-2026-94440 mime/multipart, net/textproto 1.26.9, 1.27.2 S
CVE-2026-78667 net/http 1.26.9, 1.27.2 P
CVE-2026-78660 net/http, net/http/internal/http2 1.26.9, 1.27.2 P
CVE-2026-78669 net/http, net/http/internal/http2 1.26.9, 1.27.2 S
CVE-2026-78663 net/http, net/http/internal/http2 1.26.9, 1.27.2 S
CVE-2026-94439 net/http 1.26.9, 1.27.2 S
CVE-2026-97032 net/http, net/http/internal/http2 1.26.9, 1.27.2 S
CVE-2026-111943 crypto/x509 1.26.10, 1.27.3 S

The build toolchain also includes module/toolchain download-validation fixes CVE-2026-56865, CVE-2026-56864, CVE-2026-94444, and CVE-2026-94447. These strengthen the build environment, rather than describing exporter runtime vulnerabilities. The official announcements cover Go 1.26.6, Go 1.27.2, and Go 1.27.3.

Go modules

Upgrade Fixes included Relevance to PG Exporter
x/net 0.57.0 → 0.61.0 CVE-2026-78659, CVE-2026-78660, CVE-2026-78669, CVE-2026-78663, CVE-2026-97032, fixed in 0.60.0 HTTP/2 memory amplification, malformed response framing, CPU exhaustion, flow-control accounting, and an HPACK race. Four static symbol matches and one package match in the old baseline. The same CVEs also affect Go’s bundled HTTP/2 copy; do not count them twice.
x/crypto 0.54.0 → 0.58.0 CVE-2026-56854, fixed in 0.55.0; CVE-2026-56855 and CVE-2026-78662, fixed in 0.56.0 SSH source-address authentication restrictions and deadlocks; affected packages are not imported, so these are module-level updates.
x/text 0.40.0 → 0.43.0 CVE-2026-56851, fixed in 0.41.0 secure/precis Nickname transformation panic; affected package is not imported.

On 2026-10-23, govulncheck found no symbol-level or imported-package vulnerabilities in the v1.5.0 candidate for Darwin/arm64, Linux/amd64, and Windows/amd64. The unimported OpenPGP package still produces the module-only advisory GO-2026-5932, which has no fixed version. This is not a claim that every dependency module is free of advisories. Upgrading Go alone while retaining the old modules leaves the five x/net matches; both the compiler and dependency changes matter.

Use the rebuilt release artifacts: installing a newer Go compiler on a host does not change an already compiled exporter binary.

Upgrade notes

  1. Deploy the matching collector configuration. Upgrading only the binary does not apply SQL or label corrections. Compare local customizations before replacing /etc/pg_exporter.yml.

  2. Review the pg_sub_* label change. The new datname label creates new time series. Keep database identity in PromQL joins and aggregations where needed. pg_sub_id remains a Gauge.

  3. Grant the PG10–13 subscription prerequisite. As an administrator, run the following in each database used as the exporter’s main connection database, using the actual monitoring role. Granting it only in a subscription’s database is insufficient. It does not expose subconninfo; PG14+ needs no extra grant under standard catalog ACLs.

    GRANT SELECT (oid) ON pg_catalog.pg_subscription TO monitor;
  4. Check receiver-state alerts. streaming=0, stopping=4, connecting=5 (PG19+), starting=6, waiting=7, restarting=8, stopped=9, and unknown/NULL =-1; codes 1–3 are reserved. A missing receiver row remains absent.

  5. Correct previously tolerated invalid input. Broken URL escapes, empty selected URL files, non-finite durations, and unreachable metrics paths now fail validation. Prefer /metrics for compatibility with both HTTP mux implementations.

Omitted sslmode still defaults to disable; configure TLS explicitly for remote connections. The scratch container still requires a mounted CA for certificate verification. Empty YAML reloads still apply zero configured collectors, invalid files in a directory may be skipped, and SIGTERM does not wait for active HTTP requests. See Security, HTTP API, and Bundled Collectors for the operating contracts.

Validation scope

Pre-release validation covered the race suite, both HTTP mux modes, static analysis, module and generated-config consistency, roughly 604,000 short-run fuzz cases, and six target builds. Non-superuser default collection passed on PostgreSQL 9.1–9.6, 10–18, 19 RC1, and PgBouncer 1.26.1. Runtime checks included conflicting database aliases, special database names, schema/extension changes, failed reloads, reconnect recovery, physical standby promotion, and concurrent HTTP requests. RPM/DEB installation and Docker builds were also checked.

These checks cover the recorded versions and scenarios, not every extension combination or production workload. Composite, Patroni, pgBackRest, and PostgreSQL-log components remain development work outside v1.5.0.

3 - PG Exporter v1.4.1

Subscription count and label validation fixes; RPM rename

v1.4.1 is a maintenance release focused on metric accuracy and RPM upgrade compatibility.

Highlights

  • Fix pg_subrel_count overcounting when parallel logical replication apply workers are active: deduplicate pg_stat_subscription by subscription ID and name before aggregating subscription relation states
  • If a query result omits a configured LABEL column, 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_exporter to pg-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 LABEL column; the result schema must remain complete even when the query returns zero rows
  • If automation matches GitHub RPM file names directly, update pg_exporter-*.rpm to pg-exporter-*.rpm

4 - PG Exporter v1.4.0

Snapshot histograms, pg_xact_age collector, HTTP hardening

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 HISTOGRAM column type: SQL observations are grouped by labels into snapshot distributions. The _bucket, _count, and _sum families are Gauges. Bucket bounds must be finite and strictly increasing; +Inf is added automatically. The le label is reserved, and reload replaces the bucket layout
  • New pg_xact_age collector: 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_age takes slot 0450, with pg_lock / pg_lock_stat / pg_query renumbered to 0460 / 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-path is strictly validated at startup: empty paths, paths not starting with /, paths containing ? # { }, conflicts with built-in endpoints, and non-canonical paths like //metrics that 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-fast pre-check fails
  • RPM / DEB packaging fixes (#105): the prometheus system user’s HOME now points to /var/lib/prometheus (where libpq looks for ~/.pgpass), and the packaged default URL gains the /postgres database name so libpq no longer falls back to a database named after the OS user
  • Version string unified with the v prefix: --version output, the /version endpoint, and the pg_exporter_build_info{version=...} label of official release binaries now report v1.4.0 (GoReleaser artifacts previously reported unprefixed 1.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 PgBouncer 1.8 - 1.25+
  • make docker restores GOPROXY / GOSUMDB build-arg passthrough

Engineering & Build

  • Build toolchain updated to Go 1.26.5, exporter-toolkit v0.17.1, and prometheus/common v0.70.0
  • New regular CI verification workflow: module tidy check, generated-config drift check (make conf output must stay in sync with config/*.yml), race tests, and six-platform cross-builds
  • Docker build tooling consolidated: the docker/ scripts and make docker-release are 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 version label of pg_exporter_build_info or the --version output needs to accommodate the v prefix

  • When any HISTOGRAM collector is configured, le can no longer be used as a constant label

  • Query snapshot buckets directly with histogram_quantile(); do not apply rate() or increase(). See snapshot Histogram semantics.

Checksums

SHA256 checksums

9874191591567ede87ae1d5820f06e781f27c664a7f4a6365211f9e042fd8199  checksums.txt
c6af4ae62e13f518539a6d0b3ce86ff9f7acdb567a4f0f86c6f47563574da724  pg-exporter_1.4.0-1_amd64.deb
ff0360f61982ed627d1b1f93281a0ba66da9d077672f0c214e19522df01e40d6  pg-exporter_1.4.0-1_arm64.deb
4fbadd4e9d918c9bc8e63975378e49375b0ff897d6b8a0f78799538b13dd68a1  pg-exporter_1.4.0-1_ppc64le.deb
5ce106d27fffa77c39fea9bf7cbc60f4328df3d926fef025bfdd082eb6d743fd  pg_exporter-1.4.0-1.aarch64.rpm
870b434e802e0039f10e1e3583c28a1fd83db4363a4608e1fab7f375f6d30600  pg_exporter-1.4.0-1.ppc64le.rpm
c550d16ce3f9276948a4d44174e11716fc5e85e31e8788ea106a57cfbabd8488  pg_exporter-1.4.0-1.x86_64.rpm
11a34e531ac5d6d378b91e768f575525389141a6860afabd0cc9f2d853f06749  pg_exporter-1.4.0.darwin-amd64.tar.gz
49d8d3a5932602f433c4ef681ed12007da1cbc11b5ee0f9d7b4dc2d0dff8e26e  pg_exporter-1.4.0.darwin-arm64.tar.gz
113dfe70d4f780a456c05ca6b731f96c1013bf35ecb87d75c443fe2bac7e333b  pg_exporter-1.4.0.linux-amd64.tar.gz
68b4630ab39943658a8aff135990896a5ccf56c8a992e5982d572c78ef822e18  pg_exporter-1.4.0.linux-arm64.tar.gz
72710625e5658c941b48f7becba9a86491852cea5469240328292838d9ed0979  pg_exporter-1.4.0.linux-ppc64le.tar.gz
14a0cf6ffa04c7e54c1d5aa5b37fe4bea1429c1d1e7cce89e9dd805c4a29db0b  pg_exporter-1.4.0.windows-amd64.tar.gz

5 - PG Exporter v1.3.0

PostgreSQL 19 support, new PG19 collectors and branches

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/*.yml definition files
  • Build dependencies updated to Go 1.26.4, lib/pq v1.12.3, Prometheus client v1.23.2, and exporter-toolkit v0.16.0
  • pg_recovery_state: collect pg_stat_recovery on recovery nodes, exposing promotion trigger status, replay LSN, timeline, recovery transaction time, and pause state
  • pg_lock_stat: collect PG19 pg_stat_lock, exposing waits, wait time, and fast-path overflow counts by locktype
  • pg_vacuum_score: collect the current-database summary from pg_stat_autovacuum_scores, exposing max autovacuum score and candidate table count
  • pg_wal_19: expose wal_fpi_bytes on PG19 as pg_wal_fpi_bytes
  • pg_sub_19: adapt sequence sync and logical replication conflict stats from pg_stat_subscription_stats, while keeping sync_error_count for legacy dashboards
  • pg_recv: recognize the PG13+ WAL receiver connecting state on PG19
  • pg_slot: recognize the PG19 replication slot invalidation reason idle_timeout
  • pg_db_confl: switch to an explicit column list to avoid accidentally exporting future view columns
  • pg_backup, pg_vacuuming, and pg_clustering continue reusing stable existing branches instead of changing the metric surface for low-value PG19 fields

Checksums

SHA256 checksums

c88c4ad7cde10531d75ec98fa536b2e7f531639f55c3b3c9866ee76934a4e2b2  checksums.txt
dfc6d517300687a382557e6d77af1ecb513bdde2e961d01ca46efa008ae15569  pg-exporter_1.3.0-1_amd64.deb
3d2ff642d0bb3657b28eb7c4b30bacc8ef9e4cbd057c870e6ec6817b47ac8092  pg-exporter_1.3.0-1_arm64.deb
4cfe043eb193780515a1e00ab93250dd44ca0728b35cb037ed165c70c89b6b5a  pg-exporter_1.3.0-1_ppc64le.deb
3ae4f8c554242ae52c4ba0fa07a9d95b702f72938ce55e8456dd97242cc46faf  pg_exporter-1.3.0-1.aarch64.rpm
71a0023383170b4ef3c243d9bf08d530b819fa891fa784e87c74b2a55cb426ec  pg_exporter-1.3.0-1.ppc64le.rpm
316a97ccb2df9a02de99dda33826857ec32bbd6fd874ffb950625bc064d62496  pg_exporter-1.3.0-1.x86_64.rpm
4ab312f27f0ded7f0ff5591866a86311d13041fef3a015e92f44fcf4a2284ccd  pg_exporter-1.3.0.darwin-amd64.tar.gz
2b20eb7b46c0790a8524f1c00a22ab57739bd60fd89ee947f6c2ba14e6a0d6bb  pg_exporter-1.3.0.darwin-arm64.tar.gz
7a2a8ce818f30260d1e7267d0b9e1fd5b3cbd569d55ad184fc9d6fb3801f3ad7  pg_exporter-1.3.0.linux-amd64.tar.gz
696619d19efbcf33f4afbae9748e72897289d2b7f772509cd6d465c9e818066d  pg_exporter-1.3.0.linux-arm64.tar.gz
0c16ac4a912f328be90e973b5123a272c2747759be9f56bacb5542653226475e  pg_exporter-1.3.0.linux-ppc64le.tar.gz
aa3724f4e8aeb732de18b7cb416283cbc2e94b9f511ec4b94e703792e8e8b10d  pg_exporter-1.3.0.windows-amd64.tar.gz

6 - PG Exporter v1.2.2

Routine Go 1.26.2 refresh, no functional changes

v1.2.2 updates release builds to Go 1.26.2. Exporter features and configuration are unchanged.

Checksums

SHA256 checksums

273dfd45ac367f71044998d19171ee27d7deb094ec9410d4b31aef7caacfdcc6  pg-exporter_1.2.2-1_amd64.deb
5e83c8448ee6350bec96ab95550df439a129c6700e5c9c7d0f9411aa9c2e7f40  pg-exporter_1.2.2-1_arm64.deb
97bb804bd1018c111708df9118561421d2cc51bd47d031b6d1f12cf1c988a3b2  pg-exporter_1.2.2-1_ppc64le.deb
b2f76799b21aba02b6bf5b6e71bf7ae2cf4487ad8817d53aad92f1d710c00120  pg_exporter-1.2.2-1.aarch64.rpm
f0ab38907bc87a9634c22911d8a0501634d58ce34020c0952dd49281a06787e6  pg_exporter-1.2.2-1.ppc64le.rpm
2000593d9d6732f3e03a43e291bc4e2368d2ecea125a2744dc533a030f51c800  pg_exporter-1.2.2-1.x86_64.rpm
e8a71704eb6957beaebd8ecaf83479e44db4a09bd9dc95c32f7b617f141b0386  pg_exporter-1.2.2.darwin-amd64.tar.gz
e648d9444f9a5f3ee49b82bcbbb459eefd73307c789f24f0d5238dbe1bcfec9c  pg_exporter-1.2.2.darwin-arm64.tar.gz
f278aba93d09b2a47aeef66898e770cacfdbc046eab0ba02de29f7c0261d9ede  pg_exporter-1.2.2.linux-amd64.tar.gz
bbeef56452643b8eb6bf9bb5baf113ab2c38177c06f8e1d008e63cce82260801  pg_exporter-1.2.2.linux-arm64.tar.gz
ad2385278ec6060fef2f7db7873c025f56f5c55048b51815cb4195486ca9dbe2  pg_exporter-1.2.2.linux-ppc64le.tar.gz
2ac53298058f09c5569464f918396f13d3a9efebec00296d89497e97ea74caf4  pg_exporter-1.2.2.windows-amd64.tar.gz

7 - PG Exporter v1.2.1

Config style cleanup, Go 1.26.1 refresh

v1.2.1 updates the build toolchain, standardizes configuration formatting, and adds configuration consistency tests. Collector behavior is unchanged.

Highlights

  • Refresh the build toolchain: bump both release workflows and Docker build images to Go 1.26.1
  • Standardize config style: switch inline description values in both current and legacy configs to double-quoted form, and regenerate merged pg_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 PgBouncer 1.8 - 1.25+, and refresh Pigsty documentation links

Checksums

2cbe7a78a0dde8a6155a543232af883de6623531c9f6ea0951ddc30dc7514649  pg-exporter_1.2.1-1_amd64.deb
e70e09974ad52ba607b176b63c300610e37f44fe67d249aa9ef364bd58352585  pg-exporter_1.2.1-1_arm64.deb
4e6c7fae85e7fe2e62c3d66c388b5f3db57b5e95e85f43ce648d21b792d83d87  pg-exporter_1.2.1-1_ppc64le.deb
30103629e8c5c1ee5589addadb37fcb07b43179c8a19f80c016a0ed8d7ac2a47  pg_exporter-1.2.1-1.aarch64.rpm
01b4dd32b20bca8612f71f0edf3557dfa92fc85f669d3260f627d34ce102b517  pg_exporter-1.2.1-1.ppc64le.rpm
5afb4f14aa71b256cdfc93d6cc6da8a7052427d6f1c1b71900bf2593b196de50  pg_exporter-1.2.1-1.x86_64.rpm
45e71c6017beffabf2873841d374b5de40eb499dd768d6db1208d7cc6295bcf5  pg_exporter-1.2.1.darwin-amd64.tar.gz
d3035cc6a023fe1bad5443a7c1d5c8189b3d807d165f131f88566b5c35476259  pg_exporter-1.2.1.darwin-arm64.tar.gz
14d3f83de4377e5363611d2ae4eef9470a85d7518784c06b8a8c0f63b6e0a340  pg_exporter-1.2.1.linux-amd64.tar.gz
71082081e7aaf1cf15c941c310d03da49cf9971205274aad7dae21a126bc4fe1  pg_exporter-1.2.1.linux-arm64.tar.gz
cba30919b8d2945be199a4a346eb2891c88fd7a1d6c3482c1006442f4f6109e7  pg_exporter-1.2.1.linux-ppc64le.tar.gz
6fe528a242f0bbd3b89cd8b2697f48905b5c4b1398abfb3305193808c01738e9  pg_exporter-1.2.1.windows-amd64.tar.gz

8 - PG Exporter v1.2.0

Hot reload, non-blocking startup, PG9.x legacy support

v1.2.0 updates startup, hot reload, health checks, and configuration validation. It also adds a configuration bundle for PostgreSQL 9.1–9.6.

New Features

  • Add robust hot reload workflow: support platform-specific reload signals (SIGHUP / SIGUSR1) and strengthen POST /reload to 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 a make conf9 target 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 test and go vet in 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=false style arguments
  • Fix /explain output/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 dbname query-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

26e7a052e730b412bbbe5f49846f951b89650f1f95c2466d5d486923f0825f64  pg-exporter_1.2.0-1_amd64.deb
4ec219135c49708d010af7b8a7553b8008f630574e1d4cfc7642fbf951eefafe  pg-exporter_1.2.0-1_arm64.deb
5b2cc00e2c3e2ffd9eb0ab1a4f5e937dd68f3a69a14423a74d4de3d7cf29283e  pg-exporter_1.2.0-1_ppc64le.deb
d536d41a92e8aa85ae3935715d1bf0463208b1e614eae73543f1472ca8a7e0d4  pg_exporter-1.2.0-1.aarch64.rpm
b7a1daa225f8ca4de6d227e6004330589295d924accd221892ebe14f191fe35c  pg_exporter-1.2.0-1.ppc64le.rpm
28bf7d85862510675c64ff5181d216c6a068a23ffa56dc4bb9e6b82165ff99b5  pg_exporter-1.2.0-1.x86_64.rpm
51c3b3d18089d888a54a6b3e7ecb0620dc0da04c81471a0b7aaa88c1677ddb8c  pg_exporter-1.2.0.darwin-amd64.tar.gz
3ba1c7adea9c926afd3054ba18cc43e665e420a495bfcfd2248242c49a67b077  pg_exporter-1.2.0.darwin-arm64.tar.gz
9e1ec6c15e6b2aaadbe27a27053ee1ec289bdd012c19ca6371de738fa5f8843e  pg_exporter-1.2.0.linux-amd64.tar.gz
9e18849693ccda313979db0a230cb81acfe4199364feb6ce3e72d1a89fbfb809  pg_exporter-1.2.0.linux-arm64.tar.gz
6e28489685d0bd1fdabcb71474f64f559ade199b871666954323bae9dc01465f  pg_exporter-1.2.0.linux-ppc64le.tar.gz
9e9beac619fe2c614a77bc3334bc4b80df9db355bf95845eb4b11674ddad52d9  pg_exporter-1.2.0.windows-amd64.tar.gz

9 - PG Exporter v1.1.2

pg_timeline configuration fix and dependency updates

Fixed the pg_timeline configuration and updated Go dependencies.

Checksums

SHA256 checksums

8cddd57a843914a3145a80a3220bc875047b9bcac0664357c01ba86485436236  pg-exporter_1.1.2-1_amd64.deb
f5b25a8ae5c022867a54c17ba1c6493eba20dcb292340460390289336df24f04  pg-exporter_1.1.2-1_arm64.deb
4da2c287f6717681b25befda0d59a89b9d1b258281ce94f3a6bc21d02f70c83c  pg-exporter_1.1.2-1_ppc64le.deb
b26355f3c1a5b8a147291a51e2d7ada204deed6d52877c146a8b3e499defa5e8  pg_exporter-1.1.2-1.aarch64.rpm
42ef89716ba99dd918b0e9c77ef3236129d613f68bb8ae5929668a5a2596cca5  pg_exporter-1.1.2-1.ppc64le.rpm
a8f4a2d5c7b6701c7bac788a7ed7183b6c4b74a334326cd389f3a695fb77675d  pg_exporter-1.1.2-1.x86_64.rpm
775f5ea3188a6acb1327c001c4ba9a0651424c3bb37d800e6f67972c904c4750  pg_exporter-1.1.2.darwin-amd64.tar.gz
7f2bbcc2db1e16dc78c3edd8e67e20e4ec81f2972c8c37135cba6f6afbf91003  pg_exporter-1.1.2.darwin-arm64.tar.gz
33c34b1f9ef6b6e7615f241a95059a8137a2337a454930b668180a9329d12b98  pg_exporter-1.1.2.linux-amd64.tar.gz
2b91a5818d780e38692ab6446cacb496695e67388676c18012be582e8ddfbdd8  pg_exporter-1.1.2.linux-arm64.tar.gz
adcb5f229f4a5d641f6430b9a2dfb0377a2e4310efad242730867d6cdf5e27ee  pg_exporter-1.1.2.linux-ppc64le.tar.gz
90b7c7e4b2b94936b5faa3cf2d35509b62ebc0d60b3afe1abaaf03efcd415a4a  pg_exporter-1.1.2.windows-amd64.tar.gz

10 - PG Exporter v1.1.1

New pg_timeline collector, pg_sub_16 branch, bug fixes

Minor release with new collectors and bug fixes.

New Features

  • New pg_timeline collector for timeline monitoring
  • New pg_sub_16 collector branch to exclude parallel operations in subscriptions (PostgreSQL 16+ compatibility)

Bug Fixes

  • Fix: Add coalesce for slotname in pg_recv collector to handle NULL values

Checksums

SHA256 checksums

fd5ee96511676fc11b975115a4870ed0c811056519f79ad7f24ab7ec538fa278  pg-exporter_1.1.1-1_amd64.deb
b90a08d16a6e4707d82f8f3ae282cb76acb331de607e7544532fd0b774b7aa27  pg-exporter_1.1.1-1_arm64.deb
163955f59a71da48901ffa26bb2f2db0712d31d8aeb1ab3fa463683f719a6d3a  pg-exporter_1.1.1-1_ppc64le.deb
cf4f8bc12bb8a2d1e55553f891fd31c43324e4348249727972eb44f82cd4e6c8  pg_exporter-1.1.1-1.aarch64.rpm
5a425b2f61f308b32f2d107372830c34eb685bfb312ee787f11877a20f1c4a2e  pg_exporter-1.1.1-1.ppc64le.rpm
23606ccea565368971ac2e7f39766455b507021f09457bcf61db13cb10501a16  pg_exporter-1.1.1-1.x86_64.rpm
ce74624eba92573318f50764cee4f355fa1f35697d209f70a4240f8f9d976188  pg_exporter-1.1.1.darwin-amd64.tar.gz
35fba12521dbdcc54a3792278ed4822e4ca9e951665b5e53dff7c2a0f7014ae3  pg_exporter-1.1.1.darwin-arm64.tar.gz
7699bdef15dd306289645beee8d40a123ca75dc988e46d89cdd75a1c1f650bef  pg_exporter-1.1.1.linux-amd64.tar.gz
f4baba59d27a8eb67f0c5209fed7b9f00f78db796e583cc3487701e7803671c6  pg_exporter-1.1.1.linux-arm64.tar.gz
810c3817c27358fa667714f8bfe8d52840a7ea010035e29547919ccb7c9fa781  pg_exporter-1.1.1.linux-ppc64le.tar.gz
3f6df693b3eb92fdaeaeccf99ea7e5977b2c65028a4f00bdfabbc0405b9f5f93  pg_exporter-1.1.1.windows-amd64.tar.gz

11 - PG Exporter v1.1.0

Update default metrics collectors, bump to go 1.25.5

Updated dependencies and built with Go 1.25.5.

Collector Changes

  • pg_setting: Major refactor for PG10-18 compatibility with missing_ok support
    • Add 15 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_size to work_mem
    • Change min_version from 9.6 to 10, explicit ::int type casting
  • pg_size: Fix log directory size detection, use logging_collector check instead of path pattern matching
  • pg_table: Performance optimization, replace LATERAL subqueries with JOIN for better query performance; fix tuples and frozenxid metric type from COUNTER to GAUGE; increase timeout from 1s to 2s
  • pg_vacuuming: Add PG17 collector branch with new metrics indexes_total, indexes_processed, dead_tuple_bytes for index vacuum progress tracking
  • pg_query: Increase timeout from 1s to 2s for high-load scenarios
  • pg_io: Fix typo in reuses description (“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

Checksums

SHA256 checksums

9c65f43e76213bb8a49d1eab2c76a27d9ab694e67bc79f0ad12769ea362b5ca2  pg-exporter_1.1.0-1_amd64.deb
bcd2cacb4febc5fb92f9eda8e733c161c8c6721416e16ec91a773503241c972d  pg-exporter_1.1.0-1_arm64.deb
2c9d4a9cb06d07af0b6dd9dd6e568af073dc9f6775abde63b45f0aae34d171b1  pg-exporter_1.1.0-1_ppc64le.deb
2934ab5b0fb16dca5a96ec1e8f230e32c72b30ca076b5e5ddf8ec553c821f7b8  pg_exporter-1.1.0-1.aarch64.rpm
3c9955f31ba93532cc7f95ff60b0658f4b6eca6a827710e2f70c0716b34eab43  pg_exporter-1.1.0-1.ppc64le.rpm
9fdefbd8e7660dcb130207901a27762e0a381857ba8cf12b63184744f92dea05  pg_exporter-1.1.0-1.x86_64.rpm
7159002016754309e0ed625a9a48049d21177883fa11d1e448eb7655ceb690cc  pg_exporter-1.1.0.darwin-amd64.tar.gz
7d55ac5cda0b1fd8ffbd5e76b9c1c1784ac8e353104a206caaadce89adda6d65  pg_exporter-1.1.0.darwin-arm64.tar.gz
8211ec24277554b9b1a36920d7865153e21c2621031d3d08f22d94cdd2ddf02f  pg_exporter-1.1.0.linux-amd64.tar.gz
d17ab7f9bf04442e642483d432d005d25bb62e0c9caa73cb7e69ee19eb89b3ae  pg_exporter-1.1.0.linux-arm64.tar.gz
c074aeb345cc30f7b6e16aa153ae3d9a12789e4425987590c3fd77c4e68a40b6  pg_exporter-1.1.0.linux-ppc64le.tar.gz
13d653e2abb023ce9526bdc2815135b82f49c044d237030f3f56b09fb016fcb7  pg_exporter-1.1.0.windows-amd64.tar.gz

12 - PG Exporter v1.0.3

Routine update on 1.25.4, fix unsupported libpq env
  • Updated dependencies and built with Go 1.25.4.
  • Fix #80 Conflict with libpq env variables
  • Change default value of auto-discovery to true by @kadaffy

Checksums

SHA256 checksums

7efa1a77dfd5b94813c32c7ac015b1d479b1f04fb958f6b1ed5af333e354d015  pg-exporter_1.0.3-1_amd64.deb
41e18bf18eba2ab90ac371bfb46e9152da9fe628ebd8e26766cac08325eb3b07  pg-exporter_1.0.3-1_arm64.deb
7da8ed738d254c120d42aa51d6137f84e7f4e3188bc764d4f9a1438220363a43  pg-exporter_1.0.3-1_ppc64le.deb
a214b555981156da7b7d248b1f728f8ac88a07ac8f77a66c5d8e43b40670d6b4  pg_exporter-1.0.3-1.aarch64.rpm
d876fc66e208612ebffe3c43dabce88b088d915f92584260d710b85a3a131413  pg_exporter-1.0.3-1.ppc64le.rpm
75f62d314fec50c836c534996c884d25ecea77810ab33e7ba0e9c4b783e775b4  pg_exporter-1.0.3-1.x86_64.rpm
47829a19707284bcee1b8dc47cc7d0172398bb533e6b4043950f787486712769  pg_exporter-1.0.3.darwin-amd64.tar.gz
38b6ccb72315cadea542b1f2a7b7022d0e8d48ffd4ab177bb69a0a909b99af6b  pg_exporter-1.0.3.darwin-arm64.tar.gz
36e8dff84d61a7593ff1fcec567ca4ffeaecd0be2f9eabd227ceac71b12a919a  pg_exporter-1.0.3.linux-amd64.tar.gz
6477e8ef873773a09c4f39a29444f21b5b2c71e717e52ca425bcc8e8e5448791  pg_exporter-1.0.3.linux-arm64.tar.gz
a083b51ebed2b280e2eaa0f19558494e7fa6f122a0a86a1d117206fcd090820c  pg_exporter-1.0.3.linux-ppc64le.tar.gz
a1f9b27b7190f478726d96f270a72d9dc4d3f2bcc3b0326b7c4a2607e62ea588  pg_exporter-1.0.3.windows-amd64.tar.gz

13 - PG Exporter v1.0.2

More build platforms with GoReleaser
  • Updated dependencies and built with Go 1.25.0.
  • Added the PG Exporter website.
  • Release with GoReleaser for more operating systems and architectures with CI/CD pipeline:
    • add windows amd64 support
    • add linux ppc64le support

Checksums

SHA256 checksums

683bf97f22173f2f2ec319a88e136939c2958a1f5ced4f4aa09a1357fc1c44c5  pg-exporter_1.0.2-1_amd64.deb
f62d479a92be2d03211c162b8419f968cea87ceef5b1f25f2bcd390e0b72ccb5  pg-exporter_1.0.2-1_arm64.deb
e1bbfc5a4c1b93e6f92bc7adcb4364583ab763e76e156aa5c979d6d1040f4c7a  pg-exporter_1.0.2-1_ppc64le.deb
f51d5b45448e6bbec3467d1d1dc049b1e16976f723af713c4262541ac55a039c  pg_exporter-1.0.2-1.aarch64.rpm
18380011543674e4c48b2410266b41165974d780cbc8918fc562152ba623939e  pg_exporter-1.0.2-1.ppc64le.rpm
198372d894b9598c166a0e91ca36d3c9271cb65298415f63dbffcf6da611f2bb  pg_exporter-1.0.2-1.x86_64.rpm
cbe7e07df6d180507c830cdab4cf86d40ccd62774723946307b5331d4270477d  pg_exporter-1.0.2.darwin-amd64.tar.gz
20c4a35fa244287766c1d1a19cd2e393b3fa451a96a81e5635401e69bef04b97  pg_exporter-1.0.2.darwin-arm64.tar.gz
d742111185f6a89fff34bfd304b851c8eb7a8e38444f0220786e11ed1934eff1  pg_exporter-1.0.2.linux-amd64.tar.gz
0b1f4c97c1089c4767d92eb22419b8f29c9f46fb90ddfd1e8514cc42dc41054f  pg_exporter-1.0.2.linux-arm64.tar.gz
895083fd2c7fc5409cc1a2dbaaef1e47ac7aa6a3fd5db2359012922d90bcdcc3  pg_exporter-1.0.2.linux-ppc64le.tar.gz
5f751228e7120604af9a482fb70197489fa633c38a0f2b6a3489393fbc6a10aa  pg_exporter-1.0.2.windows-amd64.tar.gz

14 - PG Exporter v1.0.1

Docker Hub images, Go 1.24.5, disable pg_tsdb_hypertable
  • Add Docker Hub images: pgsty/pg_exporter
  • Updated Go dependencies and built with Go 1.24.5.
  • Disable pg_tsdb_hypertable collector by default, since timescaledb catalog is changed.

Checksums

d5e2d6a656eef0ae1b29cd49695f9773  pg_exporter-1.0.1-1.aarch64.rpm
cb01bb78d7b216a235363e9342803cb3  pg_exporter-1.0.1-1.x86_64.rpm
67093a756b04845f69ad333b6d458e81  pg_exporter-v1.0.1.darwin-amd64.tar.gz
2d3fdc10045d1cf494b9c1ee7f94f127  pg_exporter-v1.0.1.darwin-arm64.tar.gz
e242314461becfa99c3978ae72838ab0  pg_exporter-v1.0.1.linux-amd64.tar.gz
63de91da9ef711a53718bc60b89c82a6  pg_exporter-v1.0.1.linux-arm64.tar.gz
718f6afc004089f12c1ca6553f9b9ba5  pg-exporter_1.0.1_amd64.deb
57da7a8005cdf91ba8c1fb348e0d7367  pg-exporter_1.0.1_arm64.deb

15 - PG Exporter v1.0.0

PostgreSQL 18 support, new WAL/checkpointer/I/O metrics

Changes

Added PostgreSQL 18 collector branches:

Branch Changes
pg_wal_18 Removed write, sync, write_time, and sync_time; PostgreSQL moved these statistics to pg_stat_io
pg_checkpointer_18 Added num_done and slru_written
pg_db_18 Added parallel_workers_to_launch and parallel_workers_launched
pg_table_18 Added table_parallel_workers_to_launch and table_parallel_workers_launched
pg_io_18 Added WAL statistics and read_bytes, write_bytes, and extend_bytes; removed op_bytes
pg_vacuuming_18 Added delay_time

Checksums

MD5 checksums published in the GitHub Release:

33fe4dd8c5af56bef9b78fbf8f4fbbc9  pg_exporter-1.0.0-1.aarch64.rpm
eba8426b2cf50a58db5353562727004a  pg_exporter-1.0.0-1.x86_64.rpm
f691282245f9ef7e712b88985ca0da11  pg_exporter-v1.0.0.darwin-amd64.tar.gz
c133c6077857edd500ab325bad4dc438  pg_exporter-v1.0.0.darwin-arm64.tar.gz
3875487d26bcf9e9ec2e4dcb0c477ee0  pg_exporter-v1.0.0.linux-amd64.tar.gz
395715fbee8894baf0e9c173f8e1babd  pg_exporter-v1.0.0.linux-arm64.tar.gz
f3b23e592f33587d0055984a6d9c2ef3  pg-exporter_1.0.0_amd64.deb
a7305b9c46f8a0d476c9835cc8f01dfe  pg-exporter_1.0.0_arm64.deb

16 - PG Exporter v0.9.0

TimescaleDB, Citus, pg_wait_sampling collectors

Default Collectors

  • new metrics collector for timescaledb hypertable
  • new metrics collector for citus dist node
  • new metrics collector for pg_wait_sampling wait event profile
  • pg_slot overhaul: Add 16/17 pg_replication_slot metrics
  • allow pg_slot collector run on replica since 16/17
  • refactor pg_wait collector to agg from all processes
  • restrict pg_clustering, pg_indexing, pg_vacuuming run on primary
  • mark all reset_time as GAUGE rather than COUNTER
  • fix pg_recovery_prefetch_skip_fpw type from GAUGE to COUNTER
  • fix pg_recv.state type from LABEL to GAUGE
  • Format collector in compact mode
  • new default metric pg_exporter_build_info / pgbouncer_exporter_build_info
  • add server_encoding to pg_meta collector
  • Added 12 pg_setting metrics: wal_block_size, segment_size, wal_segment_size, wal_level, work_memory_size, shared_memory_size, hugepage_count, hugepage_status, max_wal_size, min_wal_size, max_slot_wal_keep_size, archive_mode.

Exporter Codebase

  • normalize collector branch name with min pg ver suffix
  • Add license file to binary packages
  • Moved the repository from Vonng/pg_exporter to pgsty/pg_exporter.
  • refactor server.go to reduce Compatible and PostgresPrecheck complexity
  • rename metrics collector with extra number prefix for better sorting
  • Updated dependencies.
  • execute fatal collectors ahead of all non-fatal collectors, and fail fast

17 - PG Exporter v0.8.1

Dependencies update, docker image tags

Changes

18 - PG Exporter v0.8.0

PgBouncer 1.24 support, Go 1.24, logging refactor

Changes

  • Add PgBouncer 1.24 new metrics support (stat, pool, database)
  • Fix: 310-pg_size.yml fails 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/slog instead of go-kit Full changelog

19 - PG Exporter v0.7.1

Routine update, configuration as Reader support

Changes

Routine update with dependabot

21 - PG Exporter v0.6.1

Security dependency updates and connection-timeout fix

Changes

  • Updated golang.org/x/net from v0.10.0 to v0.17.0 and golang.org/x/crypto to v0.17.0 for security fixes (#38 covers x/crypto)
  • Fix connect-timeout propagation (#37), contributed by @mouchar

Checksums

The original release published MD5 checksums for its archives and packages:

107a67ca74b1d6e7bbe773694a48f6ab  pg_exporter-v0.6.1.darwin-amd64.tar.gz
75b57566838c38092a9c45531c031561  pg_exporter-v0.6.1.darwin-arm64.tar.gz
9e55128671b31dd28d6bca3d0429de8f  pg_exporter-v0.6.1.linux-amd64.tar.gz
68a8b9537f6deb1773d8bea9182bd613  pg_exporter-v0.6.1.linux-arm64.tar.gz
0b0cd62c59cab6d1ab8772d820e599db  pg-exporter_0.6.1_amd64.deb
947126150b71081d0592d7f1fce0aaac  pg-exporter_0.6.1_arm64.deb
6a3608b965143441a5921d3017318146  pg_exporter-0.6.1-1.aarch64.rpm
b3c9f2edd28810cae81cd0edad9eae5d  pg_exporter-0.6.1-1.x86_64.rpm

22 - PG Exporter v0.6.0

PostgreSQL 16 support, ARM64 packages, security fixes

Changes

  • Updated dependencies to address reported vulnerabilities.
  • Added PostgreSQL 16 collectors and PostgreSQL 15 compatibility fixes (#35, @japinli).
  • Added ARM64 packages.
  • Removed the fixed monitor schema from pg_query queries. pg_stat_statements must be visible through search_path, such as when installed in public.
  • Accepted .yml as well as .yaml in configuration directories (#34, @japinli).
  • Changed PgBouncer version-parsing messages from info to debug level.
  • Added the missing relid column to pg_table_10_12.

23 - PG Exporter v0.5.0

RPM/DEB builds, column scaling, metrics enhancements

Exporter changes

  • Used nFPM to build RPM and DEB packages.
  • Added column.default to substitute a value for NULL.
  • Added column.scale to scale numeric values, such as microseconds to seconds.
  • Fixed /stat output.
  • Added the pgsty/pg_exporter Docker image.

Collector changes

  • Converted time metrics to seconds in pg_wal, pg_query, pg_db, pg_bgwriter, pg_ssl, and pgbouncer_stat.
  • Moved pg_class metrics into pg_table and pg_index.
  • Enabled pg_table_size by default.

24 - PG Exporter v0.4.1

Collector updates, connect-timeout parameter

Changes

  • Excluded Citus and TimescaleDB internal schemas from object monitoring.
  • Removed duplicate pg_statio rows.
  • Added PgBouncer 1.16 support.
  • Fixed overlapping pg_repl collector branches on PostgreSQL 12.
  • Added -T, --connect-timeout, and PG_EXPORTER_CONNECT_TIMEOUT to control connection timeouts, including for remote targets.
  • Renamed the RPM configuration file from pg_exporter.yaml to pg_exporter.yml.

25 - PG Exporter v0.4.0

PostgreSQL 14 support, auto-discovery feature

Changes

  • Added PostgreSQL 14 support.
  • Revised the default metric configuration while preserving support for older configuration files.
  • Added --auto-discovery, --include-database, and --exclude-database.
  • Added multi-database collection through automatic discovery.

26 - PG Exporter v0.3.2

Shadow DSN fixes, documentation updates

Changes

  • Fixed an edge case in redacted connection strings.
  • Corrected documentation and spelling errors.

27 - PG Exporter v0.3.1

Configuration fixes for older PostgreSQL versions

Changes

Fixed default-configuration errors, especially on PostgreSQL versions below 13:

  • Restricted primary_conninfo collection to the supported collector branch.
  • Added funcid to pg_func labels to distinguish functions with the same name.
  • Corrected the program name in version output to pg_exporter.

28 - PG Exporter v0.3.0

PostgreSQL 13 support, REST APIs, dummy server

Changes

  • Updated the default configuration for PostgreSQL 13 metrics, including pg_slru, pg_shmem, pg_query13, and pg_backup.
  • Added HTTP endpoints for health and recovery-state checks.
  • Added a startup HTTP server that reports pg_up 0 until initialization finishes.
  • Added sslmode=disable when the connection URL omits sslmode.
  • Fixed bugs and spelling errors.

29 - PG Exporter v0.2.0

YUM packages, configuration reload support

Changes

  • Added RPM packages for YUM and a Linux service definition.
  • Added the skip option to query configuration.
  • Fixed pgbouncer_up.
  • Added configuration reload support.

30 - PG Exporter v0.1.2

Dynamic configuration reload, bulky mode

Changes

  • Fixed pgbouncer_up.
  • Added dynamic configuration reload.
  • Removed shard-related logic.
  • Added a bulky mode to the default configuration.

31 - PG Exporter v0.1.1

Startup hang bug fix

Changes

  • Fixed a startup hang when a query failed.

32 - PG Exporter v0.1.0

Initial stable release

Changes

The first stable release.

33 - PG Exporter v0.0.5

Timeouts, fatal collectors, priority semantics, pg_up fixes, and per-collector documentation

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_error behavior with the fatal collector policy
  • Revise collector priority semantics
  • Fix the built-in pg_up metric
  • Add documentation for each bundled collector

34 - PG Exporter v0.0.4

Production tested release

Changes

Tested across more than 200 production nodes for about two weeks.

35 - PG Exporter v0.0.3

Production environment testing

Changes

Passed production testing while the project remained under active development.

36 - PG Exporter v0.0.2

Early testing release

Changes

An early version made available for trial use.

37 - PG Exporter v0.0.1

Initial release with PgBouncer mode

This early version has a Git tag but no separate GitHub Release. The note is based on the tag and historical release summary.

Changes

  • Added PgBouncer mode.