跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

发布注记

pg_exporter 每个仓库标签对应一篇双语发布注记

归档覆盖从 v0.0.1 到 v1.5.0 的全部 36 个仓库标签,每个版本各有一篇中英文注记。

其中 34 个版本有 GitHub Release;v0.0.1 和 v0.0.5 仅有 Git 标签。日期采用 GitHub 发布时间,标签版本采用提交时间,统一为 Asia/Shanghai(UTC+08:00)。

当前软件包和安装命令见下载页。

1 - PG Exporter v1.5.0

升级 Go 1.27.3 与安全依赖,修正复制身份、连接 URL 和运行状态一致性

PG Exporter v1.5.0 升级 Go 工具链与依赖,修正复制采集器的身份与状态映射,并修复目标 URL、自动发现、健康检查、采集计划、时间配置和 HTTP 路由六类运行时缺陷。

默认配置仍包含 58 个 YAML 文件、96 个采集器分支、59 个命名空间、460 个不同指标定义。指标数量跨全部版本分支去重,包含默认关闭的采集器和两个尚未展开的 SQL 直方图;它不表示每次抓取都会输出 460 条时序。

变更摘要

  • 连接 URL 更安全: URL 语法、查询参数转义或解码后的参数名非法时,启动立即失败,诊断不再暴露原始连接串。规范化错误参数时,不会再静默丢弃显式 TLS 选项。选中的 PG_EXPORTER_URL_FILE 为空或仅含空白时也会拒绝启动。
  • 自动发现连接正确数据库: 数据库身份复用 lib/pq 解析,包括 dbname 与 database 别名。替换发现数据库的路径时清除冲突参数,保留库名特殊字符,避免多个连接重复采集同一库、产生重复指标并使 HTTP 返回 500。
  • 健康响应保持一致: 每次响应从一个原子状态快照生成 HTTP 状态码和正文,避免并发探测、抓取与重载时出现 HTTP 200 搭配 down 或 starting。健康检查仍使用目标状态缓存。
  • 采集计划跟随元数据: 元数据预检成功后,连接用户、Schema 集合或扩展集合变化会使计划失效。下一次抓取选中新增的合格采集器;依赖移除后不再选中相应采集器。集合不变时保留缓存。
  • 拒绝非法时间配置: YAML TTL、timeout 与谓词 TTL 拒绝 NaN、无穷大和导致正向时长溢出的值;零值、默认值及有限负超时关闭期限的语义不变。
  • 保证指标路径可达: 启动时检查当前 HTTP mux 实际选择的指标处理器,覆盖解码路径与重定向,避免校验成功但请求进入首页或重定向。
  • 修正复制身份与状态: 全部 pg_sub_* 样本增加 datname 标签,区分不同数据库中的同名订阅。pg_recv_state 改用真实接收器状态字典,legacy 查询改用 PG9.6 兼容的 substring()。
  • 校准采集器描述: 明确可选复制 origin 的权限要求、发布端表数量与订阅端表/序列数量的区别,并将 pg_backend 的说明修正为按后端类型分组。这些说明修改不新增指标族,也不启用可选采集器。

指标、仪表盘与告警兼容性

与同一 PostgreSQL 版本上的 v1.4.1 相比,v1.5.0 没有新增、删除或改名内置 SQL 指标。类型和单位不变,但标签与状态映射有变化。PostgreSQL 19 支持最早随 v1.3.0 发布;升级数据库还可能改变所选 SQL 分支与指标含义。

变化来源 指标 兼容性处理
v1.5.0 配置 pg_sub_* 每条样本增加 datname。连接与聚合时保留数据库和订阅身份;新标签集会产生新时序。
v1.5.0 配置 pg_recv_state 真实接收器状态 starting、waiting、restarting、stopped 从 -1 改为 6–9。更新值映射和状态告警;编码 1–3 保留。
PG18 → PG19 PG18 已有的指标名 本配置的 PG19 分支没有删除或改名这些指标;这不保证 PostgreSQL 自身提供的语义和标签取值不变。
PG19 pg_sub_sync_error_count 名称保留,值变为表与序列同步错误之和。只监控表同步时用 pg_sub_sync_table_error_count,序列分量由 pg_sub_sync_seq_error_count 提供。不要把分量和总和重复相加。
PG19 pg_sub_has_worker、pg_sub_reset_time、pg_sub_confl_* 新增 worker 存在标记、重置时间与八个冲突计数器。没有 apply worker 时仍可能保留订阅行,不能仅凭指标存在判断 worker 健康。
PG19 pg_subrel_count 同时包含表和序列;pg_pubrel_count 仍只统计表。检查面板名称与数量比较规则。
PG19 pg_wal_fpi_bytes、pg_lock_stat_*、pg_recovery_state_*、pg_vacuum_score_* 属于新增指标。恢复状态仅用于备库,自动清理评分仅用于主库;原有 WAL、锁分布和恢复指标族保留。

从 PG17 或更早版本升级的用户还需迁移旧名:检查点指标自 PG17 起移出 pg_bgwriter_*,而 pg_wal_write、pg_wal_sync、pg_wal_write_time、pg_wal_sync_time 自 PG18 起不再输出。完整兼容性指南逐项列出替代指标、标签/聚合差异与混合版本 PromQL。

部署前应执行实际仪表盘和告警表达式,并测试时序缺失的情况。抓取成功不代表所有预期指标都存在;告警表达式返回空结果时可能静默失效。缺失指标检查提供逐目标规则,并说明哪些缺失属于正常情况。PG19 指标对照表链接到发布标签中的精确定义;PostgreSQL 验证范围仍为 19 RC1。

工具链与依赖

组件 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

数据库驱动仍为 lib/pq 1.12.3,本版没有驱动迁移或新增可选数据源。Prometheus client/model/procfs、YAML、压缩、OAuth2 等传递依赖也随之更新;不能仅凭版本升级就声称修复了应用可利用的 CVE。

安全更新

本次升级纳入上游安全修复,不表示每个 CVE 都能通过 PG Exporter 利用。下表比较 v1.4.1 源码、原始依赖和 Go 1.26.5:S 表示静态符号匹配,P 表示导入包匹配但未找到受影响符号调用,M 表示只匹配模块、未导入受影响包。静态符号匹配也可能是保守分析结果,不等于攻击复现。

Go 标准库与构建工具

Go 1.27.3 包含 CVE-2026-111943 的 X.509 不可信中间证书拒绝列表,以及累计的 HTTP、TLS、模板与解析器修复。旧基线中存在以下受影响标准库记录;匹配层级取自 Darwin/arm64,平台专属问题仍需满足相应前提。

CVE 组件 首个修复版本 旧基线匹配
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

构建工具链还包含模块/工具链下载校验修复 CVE-2026-56865、CVE-2026-56864、CVE-2026-94444、CVE-2026-94447。这些属于构建环境加固,不是 Exporter 运行时漏洞。官方公告分别列于 Go 1.26.6、Go 1.27.2 和 Go 1.27.3。

Go 模块

依赖升级 纳入的修复 与 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,0.60.0 修复 HTTP/2 内存放大、畸形响应 framing、CPU 消耗、流控额度计算与 HPACK 竞态。旧基线有四项静态符号匹配和一项包匹配;相同 CVE 也影响 Go 内置的 HTTP/2 副本,不应重复计数。
x/crypto 0.54.0 → 0.58.0 CVE-2026-56854,0.55.0 修复;CVE-2026-56855 与 CVE-2026-78662,0.56.0 修复 SSH source-address 认证限制与死锁;本程序未导入受影响包,仅属模块级升级。
x/text 0.40.0 → 0.43.0 CVE-2026-56851,0.41.0 修复 secure/precis Nickname 变换 panic;本程序未导入受影响包。

2026-10-23 的 govulncheck 核验中,v1.5.0 候选在 Darwin/arm64、Linux/amd64 和 Windows/amd64 均 没有符号级或导入包级已知漏洞。未导入的 OpenPGP 包仍保留无修复版本的模块级公告 GO-2026-5932,因此不宣称所有依赖模块零告警。只升级 Go、保留旧依赖仍有五项 x/net 匹配,工具链与依赖升级都不可省略。

请使用重新构建的发行制品:只更新主机上的 Go 编译器,不会改变已经编译的 Exporter 二进制。

升级提示

  1. 同步部署采集器配置。 仅替换二进制不会应用 SQL 与标签修正。替换 /etc/pg_exporter.yml 前,请先合并本地自定义配置。

  2. 检查 pg_sub_* 标签变化。 新增 datname 会产生新时序;按需在 PromQL 连接与聚合中保留数据库身份。pg_sub_id 仍为 Gauge。

  3. 补齐 PG10–13 的订阅权限。 管理员须在每个用作 Exporter 主连接数据库 的库中,对实际监控角色执行以下授权。仅在订阅所属数据库授权并不足够。它不开放 subconninfo;PG14+ 在标准目录 ACL 下无需额外授权。

    GRANT SELECT (oid) ON pg_catalog.pg_subscription TO monitor;
  4. 检查接收器状态告警。 streaming=0、stopping=4、connecting=5(PG19+)、starting=6、waiting=7、restarting=8、stopped=9,未知/NULL 为 -1,编码 1–3 保留。没有接收器行时仍不输出样本。

  5. 修正过去被容忍的非法输入。 错误 URL 转义、空 URL 文件、非有限时间值与不可达指标路径现在会校验失败。为兼容两种 HTTP mux,建议使用 /metrics。

未指定 sslmode 时仍默认 disable,远程连接需显式配置 TLS;scratch 容器验证证书时仍须挂载 CA。空 YAML 重载仍会替换为零个配置采集器,目录中的非法文件可能被跳过,SIGTERM 也不会等待活跃 HTTP 请求结束。完整运行约定见安全指南、HTTP API与内置采集器。

验证范围

发布前验证覆盖竞态测试、新旧 HTTP mux、静态分析、模块与生成配置一致性、约 60.4 万次短时模糊测试,以及六个目标平台构建。非超级用户默认采集通过 PostgreSQL 9.1–9.6、10–18、19 RC1 和 PgBouncer 1.26.1 实测。运行场景包括冲突数据库别名、特殊库名、Schema/扩展变化、失败重载、断连恢复、物理备库晋升与并发 HTTP 请求;另验证了 RPM/DEB 安装与 Docker 构建。

这些检查只覆盖记录中的版本与场景,不等于所有扩展组合和生产负载均已验证。Composite、Patroni、pgBackRest 与 PostgreSQL 日志组件仍属开发工作,不包含在 v1.5.0 中。

2 - PG Exporter v1.4.1

修复逻辑订阅计数与标签列校验,统一 RPM 包名

v1.4.1 是一次聚焦监控准确性与 RPM 升级兼容性的维护版本。

变更摘要

  • 修复 pg_subrel_count 在并行逻辑复制工作进程场景下重复计数的问题:先按订阅 ID 与名称去重 pg_stat_subscription,再汇总各订阅关系状态
  • 查询结果缺少配置声明的 LABEL 列时,该采集器本轮采集会整体失败,不再生成空标签或沿用旧结果;其他非致命采集器仍会继续工作
  • 官方 RPM 包名及产物文件名前缀由 pg_exporter 统一为 pg-exporter;新包声明兼容并替换旧包名,可直接升级
  • 更新版本与独立安装包元数据,增加缺失标签列的回归测试,并在 CI 中校验 RPM 配置、产物名称及兼容元数据

升级提示

  • 自定义采集器的 SQL 必须返回全部 LABEL 列;即使结果为零行,返回结果的列定义也必须完整
  • 若脚本直接匹配 GitHub RPM 文件名,请将 pg_exporter-*.rpm 更新为 pg-exporter-*.rpm

3 - PG Exporter v1.4.0

快照直方图支持,新增 pg_xact_age 采集器,HTTP 路由加固

v1.4.0 引入快照直方图(Snapshot Histogram)指标类型与新的 pg_xact_age 事务年龄采集器,并对 HTTP 路由、打包与构建链进行了一轮系统性加固。

新功能

  • 新增 HISTOGRAM 列类型:SQL 观测按标签分组为快照分布,派生的 _bucket、_count 和 _sum 三个指标族均为 Gauge。桶边界必须有限且严格递增,自动追加 +Inf。le 为保留标签,重载时替换桶布局
  • 新增 pg_xact_age 采集器:以直方图暴露开放事务年龄(pg_xact_age_seconds)与事务中空闲年龄(pg_xact_age_idle_seconds)的分布,集群级采集,仅统计客户端后端,TTL 10 秒
  • 默认配置包从 57 个定义文件增加到 58 个;pg_xact_age 编号 0450,原 pg_lock / pg_lock_stat / pg_query 顺延为 0460 / 0470 / 0480(内容不变)

修复与改进

  • HTTP 路由注册隔离到私有 ServeMux,不再使用全局 DefaultServeMux,杜绝第三方库注册的端点被意外暴露
  • --web.telemetry-path 启动时严格校验:空路径、不以 / 开头、含 ? # { }、与内置端点冲突、以及 //metrics 这类注册后永远无法命中的非规范路径,一律启动即报错退出
  • 落地页对 telemetry path 进行 HTML 转义
  • --fail-fast 预检失败退出时正确关闭主连接池
  • RPM / DEB 打包修复(#105):prometheus 系统用户 HOME 指向 /var/lib/prometheus(libpq 查找 ~/.pgpass 的惯例位置),打包默认连接串补上 /postgres 数据库名,避免回退到以用户名命名的库
  • 版本串统一为 v 前缀:官方发布二进制的 --version 输出、/version 端点与 pg_exporter_build_info{version=...} 标签现在为 v1.4.0(此前 GoReleaser 产物为无前缀的 1.3.0);产物文件名、包版本号与 Docker 镜像 tag 命名规则不变
  • 直方图值转换与标量路径语义对齐:时间戳与布尔列不应用 scale 缩放
  • 修正 GoReleaser 内嵌包元数据:支持范围描述更新为 PostgreSQL 9.x - 19+ 与 PgBouncer 1.8 - 1.25+
  • make docker 恢复 GOPROXY / GOSUMDB 构建参数透传

工程与构建

  • 构建链更新到 Go 1.26.5、exporter-toolkit v0.17.1、prometheus/common v0.70.0
  • 新增常规 CI 验证工作流:模块 tidy 校验、生成配置漂移校验(make conf 结果与 config/*.yml 强一致)、race 测试与六平台交叉编译
  • Docker 构建工具链整合:移除 docker/ 目录脚本与 make docker-release,多架构发布镜像统一由 GoReleaser 构建
  • 配置覆盖测试泛化:测试不再假设特定采集器必然存在于配置目录中,便于裁剪自定义配置包

升级提示

  • 若此前使用了非规范的 telemetry path(如 //metrics),升级后进程将拒绝启动——此前虽能启动,但指标端点实际上不可达

  • 解析 pg_exporter_build_info 的 version 标签或 --version 输出的自动化脚本,需要适配 v 前缀

  • 配置了 HISTOGRAM 采集器时,le 不可再用作常量标签

  • 对快照桶直接使用 histogram_quantile(),不要使用 rate() 或 increase()。详见快照直方图语义。

校验和

SHA256 校验和

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

4 - PG Exporter v1.3.0

PostgreSQL 19 支持,新增 PG19 采集器与分支

v1.3.0 提供对 PostgreSQL 19 新指标的支持,同时刷新默认采集器包、构建链和配置覆盖测试。

变更摘要

  • 默认支持范围从 PostgreSQL 10-18+ 扩展到 10-19+
  • 默认配置包包含 57 个 config/*.yml 定义文件
  • 构建依赖更新到 Go 1.26.4、lib/pq v1.12.3、Prometheus client v1.23.2、exporter-toolkit v0.16.0。
  • pg_recovery_state:在恢复节点上采集 pg_stat_recovery,暴露提升触发、回放 LSN、时间线、恢复事务时间与暂停状态。
  • pg_lock_stat:采集 PG19 pg_stat_lock,按 locktype 暴露等待次数、等待时间和 fast-path 溢出次数。
  • pg_vacuum_score:采集 pg_stat_autovacuum_scores 当前数据库摘要,暴露最大 autovacuum 分数和候选表数量。
  • pg_wal_19:在 PG19 上暴露 wal_fpi_bytes,指标名为 pg_wal_fpi_bytes。
  • pg_sub_19:基于 pg_stat_subscription_stats 适配序列同步与逻辑复制冲突统计,继续提供兼容旧仪表盘的 sync_error_count。
  • pg_recv:PG13+ WAL receiver 分支识别 PG19 connecting 状态。
  • pg_slot:识别 PG19 replication slot idle_timeout 失效原因。
  • pg_db_confl:改为显式列清单,避免未来视图新增列被意外导出。
  • pg_backup、pg_vacuuming、pg_clustering 继续复用现有稳定分支,避免为低价值 PG19 字段改变已有指标面。

校验和

SHA256 校验和

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

5 - PG Exporter v1.2.2

例行更新到 Go 1.26.2,无功能改动

v1.2.2 将发布构建使用的 Go 更新到 1.26.2。Exporter 功能与配置不变。

校验和

SHA256 校验和

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

6 - PG Exporter v1.2.1

配置样式统一,Go 1.26.1 更新

v1.2.1 更新构建工具,统一配置格式,并增加配置一致性测试。采集器行为不变。

变更摘要

  • 刷新构建链:发布流程与 Docker 构建基础镜像升级到 Go 1.26.1
  • 统一配置样式:将当前配置与 Legacy 配置中的内联 description 统一改为双引号写法,并重新生成合并后的 pg_exporter.yml / legacy/pg_exporter.yml
  • 增加配置一致性测试:新增 split/merged config 等价性校验,以及内联指标描述风格检查,减少配置漂移风险
  • 刷新打包元数据:RPM / DEB 描述中的支持范围更新为 PostgreSQL 9.x - 18+ 与 PgBouncer 1.8 - 1.25+,并更新 Pigsty 文档入口链接

校验和

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

7 - PG Exporter v1.2.0

热重载与非阻塞启动,新增 PG9.1-9.6 legacy 支持

v1.2.0 更新启动流程、热重载、健康检查和配置校验,并新增 PostgreSQL 9.1–9.6 配置套件。

新功能

  • 支持配置热重载:新增平台相关的信号重载(SIGHUP / SIGUSR1),并强化 POST /reload 工作流,可在不重启进程情况下更新配置与查询计划
  • 启动流程改为非阻塞:即使目标库预检失败,也会先启动 HTTP 服务,便于监控系统先接入后恢复
  • 新增 PostgreSQL 9.1-9.6 Legacy 配置套件:提供 legacy/ 配置目录与 make conf9 目标,便于 EOL 老版本平滑接入
  • 健康检查机制重构:引入缓存健康快照与周期探测,读写角色类健康端点行为更一致,重载期间更平滑
  • 工程链路增强:Release 工作流增加 go test 与 go vet,并升级构建链到 Go 1.26.0

Bug 修复

  • 修复多处配置解析边界问题:拒绝非法 metrics 定义、无效目录加载失败场景可正确报错,并补齐运行时回退逻辑
  • 修复命令行布尔参数解析:正确处理 --flag=false 风格传参,避免被误判为启用
  • 修复 /explain 输出与渲染安全性:调整内容类型并改用更安全的模板渲染路径
  • 修复谓词查询与连接 URL 处理细节:增强 BOOL/BOOLEAN 条件支持、完善 dbname 查询参数解析与 URL 脱敏输出
  • 修复自动发现目标移除时的资源释放行为:异步关闭已移除数据库连接,降低采集阻塞风险
  • 修复指标与标签校验细节:补齐常量标签冲突检查、默认值缩放处理与若干 Prometheus 规则校验

校验和

SHA256 校验和

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

8 - PG Exporter v1.1.2

修复 pg_timeline 配置问题并更新 Go 依赖

修复 pg_timeline 配置问题,并更新 Go 依赖。

校验和

SHA256 校验和

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

9 - PG Exporter v1.1.1

新增 pg_timeline 采集器,pg_sub_16 分支,Bug 修复

小版本更新,新增采集器和 Bug 修复。

新功能

  • 新增 pg_timeline 采集器,用于时间线监控
  • 新增 pg_sub_16 采集器分支,排除订阅中的并行操作(PostgreSQL 16+ 兼容性)

Bug 修复

  • 修复:为 pg_recv 采集器的 slotname 添加 coalesce 以处理 NULL 值

校验和

SHA256 校验和

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

10 - PG Exporter v1.1.0

更新默认指标采集器,升级到 Go 1.25.5

更新依赖,使用 Go 1.25.5 构建。

采集器变更

  • pg_setting:针对 PG10-18 兼容性进行重大重构,支持 missing_ok
    • 新增 15 个指标: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
    • 将 work_memory_size 重命名为 work_mem
    • min_version 从 9.6 改为 10,显式 ::int 类型转换
  • pg_size:修复日志目录大小检测,使用 logging_collector 检查代替路径模式匹配
  • pg_table:性能优化,用 JOIN 替换 LATERAL 子查询以提升查询性能;修复 tuples 和 frozenxid 指标类型从 COUNTER 改为 GAUGE;超时从 1s 增加到 2s
  • pg_vacuuming:新增 PG17 采集器分支,包含新指标 indexes_total、indexes_processed、dead_tuple_bytes 用于索引 vacuum 进度跟踪
  • pg_query:超时从 1s 增加到 2s 以应对高负载场景
  • pg_io:修复 reuses 描述中的拼写错误(“in reused” -> “is reused”)
  • pg_checkpointer:修复 pg_checkpointer_10 描述(“9.4+” -> “9.4-17”)
  • pg_db_confl:修复 pg_db_confl_15 描述(“9.1 - 16” -> “9.1 - 15”)
  • pg_db、pg_indexing、pg_clustering、pg_backup 格式对齐修复

其他变更

校验和

SHA256 校验和

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

11 - PG Exporter v1.0.3

例行更新到 1.25.4,修复不支持的 libpq 环境变量
  • 更新依赖,使用 Go 1.25.4 构建。
  • 修复 #80 与 libpq 环境变量冲突
  • 由 @kadaffy 将 auto-discovery 默认值改为 true

校验和

SHA256 校验和

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

12 - PG Exporter v1.0.2

使用 GoReleaser 构建更多操作系统架构
  • 更新依赖,使用 Go 1.25.0 构建。
  • 新增 PG Exporter 独立网站。
  • 使用 GoReleaser 通过 CI/CD 流水线发布更多操作系统/架构:
    • 新增 Windows amd64 支持
    • 新增 Linux ppc64le 支持

校验和

SHA256 校验和

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

13 - PG Exporter v1.0.1

Docker Hub 镜像,Go 1.24.5,禁用 pg_tsdb_hypertable
  • 新增 Docker Hub 镜像:pgsty/pg_exporter
  • 更新 Go 依赖,使用 Go 1.24.5 构建。
  • 默认禁用 pg_tsdb_hypertable 采集器,因为 timescaledb 目录已变更

校验和

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

14 - PG Exporter v1.0.0

PostgreSQL 18 支持,新增 WAL/检查点/I/O 指标

变更

新增 PostgreSQL 18 采集器分支:

分支 变更
pg_wal_18 移除 write、sync、write_time 和 sync_time;PostgreSQL 已将这些统计移至 pg_stat_io
pg_checkpointer_18 新增 num_done 和 slru_written
pg_db_18 新增 parallel_workers_to_launch 和 parallel_workers_launched
pg_table_18 新增 table_parallel_workers_to_launch 和 table_parallel_workers_launched
pg_io_18 新增 WAL 统计与 read_bytes、write_bytes、extend_bytes;移除 op_bytes
pg_vacuuming_18 新增 delay_time

校验和

GitHub Release 公布的 MD5 校验和:

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

15 - PG Exporter v0.9.0

TimescaleDB、Citus、pg_wait_sampling 采集器

默认采集器

  • 新增 timescaledb 超表指标采集器
  • 新增 citus 分布式节点指标采集器
  • 新增 pg_wait_sampling 等待事件采集器
  • pg_slot 全面改进:新增 16/17 pg_replication_slot 指标
  • 允许 pg_slot 采集器从 16/17 开始在从库上运行
  • 重构 pg_wait 采集器,从所有进程聚合
  • 限制 pg_clustering、pg_indexing、pg_vacuuming 只在主库运行
  • 将所有 reset_time 标记为 GAUGE 而非 COUNTER
  • 修复 pg_recovery_prefetch_skip_fpw 类型从 GAUGE 改为 COUNTER
  • 修复 pg_recv.state 类型从 LABEL 改为 GAUGE
  • 采集器格式改为紧凑模式
  • 新增默认指标 pg_exporter_build_info / pgbouncer_exporter_build_info
  • 为 pg_meta 采集器新增 server_encoding
  • 为 pg_setting 新增 12 个指标: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。

导出器代码库

  • 使用最小 PG 版本后缀规范化采集器分支名称
  • 为二进制包添加许可证文件
  • 将仓库从 Vonng/pg_exporter 迁移至 pgsty/pg_exporter。
  • 重构 server.go 以降低 Compatible 和 PostgresPrecheck 复杂度
  • 使用额外数字前缀重命名指标采集器以便排序
  • 更新依赖。
  • 在所有非致命采集器之前执行致命采集器,快速失败

16 - PG Exporter v0.8.1

依赖更新,Docker 镜像标签

变更

17 - PG Exporter v0.8.0

PgBouncer 1.24 支持,Go 1.24,日志重构

变更

  • 新增 PgBouncer 1.24 新指标支持(stat、pool、database)
  • 修复:310-pg_size.yml 在日志目录设置不正确时失败 #64,由 @Süleyman Vurucu 贡献
  • 使用最新 Go 1.24 构建并升级所有依赖
  • 使用标准 log/slog 重构日志,替代 go-kit 完整变更日志

18 - PG Exporter v0.7.1

例行更新,支持 Reader 配置

变更

使用 dependabot 进行例行更新

19 - PG Exporter v0.7.0

PostgreSQL 17 支持,谓词查询功能

变更

更新代码库以使用 Go 1.22.4。

20 - PG Exporter v0.6.1

依赖安全更新与连接超时修复

变更

  • 将 golang.org/x/net 从 v0.10.0 升级到 v0.17.0,并将 golang.org/x/crypto 升级到 v0.17.0,纳入安全修复(#38 对应 x/crypto)
  • 修复 connect-timeout 传递问题(#37),由 @mouchar 贡献

校验和

原始 Release 为压缩包与软件包发布了 MD5 校验和:

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

21 - PG Exporter v0.6.0

PostgreSQL 16 支持,ARM64 包,安全修复

变更

  • 更新依赖,修复已报告的漏洞。
  • 新增 PostgreSQL 16 采集器,并修复 PostgreSQL 15 兼容问题(#35,@japinli)。
  • 新增 ARM64 软件包。
  • 移除 pg_query 查询中固定的 monitor 模式。pg_stat_statements 须通过 search_path 可见,例如安装在 public 中。
  • 配置目录同时接受 .yml 与 .yaml 文件(#34,@japinli)。
  • 将 PgBouncer 版本解析日志从 info 级别改为 debug。
  • 为 pg_table_10_12 补充缺失的 relid 列。

22 - PG Exporter v0.5.0

RPM/DEB 构建,列缩放,指标增强

导出器变更

  • 使用 nFPM 构建 RPM 和 DEB 包。
  • 新增 column.default,用指定值替代 NULL。
  • 新增 column.scale,用于数值缩放,例如将微秒转换为秒。
  • 修复 /stat 输出。
  • 新增 pgsty/pg_exporter Docker 镜像。

采集器变更

  • 将 pg_wal、pg_query、pg_db、pg_bgwriter、pg_ssl 和 pgbouncer_stat 的时间指标统一为秒。
  • 将 pg_class 指标移入 pg_table 与 pg_index。
  • 默认启用 pg_table_size。

23 - PG Exporter v0.4.1

采集器更新,connect-timeout 参数

变更

  • 对象监控排除 Citus 与 TimescaleDB 内部模式。
  • 移除重复的 pg_statio 行。
  • 新增 PgBouncer 1.16 支持。
  • 修复 PostgreSQL 12 上 pg_repl 采集器分支重叠的问题。
  • 新增 -T、--connect-timeout 和 PG_EXPORTER_CONNECT_TIMEOUT,用于控制本地或远程目标的连接超时。
  • 将 RPM 中的配置文件从 pg_exporter.yaml 改名为 pg_exporter.yml。

24 - PG Exporter v0.4.0

PostgreSQL 14 支持,自动发现功能

变更

  • 新增 PostgreSQL 14 支持。
  • 调整默认指标配置,继续支持旧配置文件。
  • 新增 --auto-discovery、--include-database 和 --exclude-database。
  • 通过自动发现支持多数据库采集。

25 - PG Exporter v0.3.2

Shadow DSN 修复,文档更新

变更

  • 修复脱敏连接串的边界情况。
  • 修正文档与拼写错误。

26 - PG Exporter v0.3.1

旧版 PostgreSQL 配置修复

变更

修复默认配置错误,主要影响 PostgreSQL 13 之前的版本:

  • 将 primary_conninfo 采集限制在支持它的采集器分支。
  • 为 pg_func 增加 funcid 标签,区分同名函数。
  • 将版本输出中的程序名修正为 pg_exporter。

27 - PG Exporter v0.3.0

PostgreSQL 13 支持,REST API,虚拟服务器

变更

  • 更新默认配置,支持 PostgreSQL 13 指标,包括 pg_slru、pg_shmem、pg_query13 和 pg_backup。
  • 新增健康与恢复状态检查的 HTTP 端点。
  • 在初始化完成前提供 HTTP 服务,并报告 pg_up 0。
  • 连接 URL 未指定 sslmode 时,补充 sslmode=disable。
  • 修复程序与拼写错误。

28 - PG Exporter v0.2.0

YUM 包,配置重载支持

变更

  • 新增供 YUM 安装的 RPM 包及 Linux 服务定义。
  • 为查询配置新增 skip 选项。
  • 修复 pgbouncer_up 指标。
  • 新增配置重载支持。

29 - PG Exporter v0.1.2

动态配置重载,批量模式

变更

  • 修复 pgbouncer_up 指标。
  • 新增动态配置重载。
  • 移除分片相关逻辑。
  • 在默认配置中新增 bulky 模式。

30 - PG Exporter v0.1.1

启动挂起 Bug 修复

变更

  • 修复查询失败导致启动挂起的问题。

31 - PG Exporter v0.1.0

首个稳定版本

变更

首个稳定版本。

32 - PG Exporter v0.0.5

新增超时、致命采集器与优先级语义,修复 pg_up 并补齐采集器文档

这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。

变更

  • 为每个采集器查询增加超时控制
  • 以 fatal 采集器策略替代早期的 skip_error 行为
  • 调整采集器优先级语义
  • 修复内置的 pg_up 指标
  • 为每个内置采集器补充文档

33 - PG Exporter v0.0.4

生产环境测试版本

变更

在 200 多个生产节点上测试约两周。

34 - PG Exporter v0.0.3

生产环境测试

变更

通过生产环境测试;项目当时仍处于快速开发阶段。

35 - PG Exporter v0.0.2

早期测试版本

变更

开放试用的早期版本。

36 - PG Exporter v0.0.1

初始版本,支持 PgBouncer 模式

此早期版本只有 Git 标签,没有独立 GitHub Release。本文依据标签和历史发布摘要整理。

变更

  • 新增 PgBouncer 模式。