这是本节的多页打印视图。 .
发布注记
- 1: PG Exporter v1.5.0
- 2: PG Exporter v1.4.1
- 3: PG Exporter v1.4.0
- 4: PG Exporter v1.3.0
- 5: PG Exporter v1.2.2
- 6: PG Exporter v1.2.1
- 7: PG Exporter v1.2.0
- 8: PG Exporter v1.1.2
- 9: PG Exporter v1.1.1
- 10: PG Exporter v1.1.0
- 11: PG Exporter v1.0.3
- 12: PG Exporter v1.0.2
- 13: PG Exporter v1.0.1
- 14: PG Exporter v1.0.0
- 15: PG Exporter v0.9.0
- 16: PG Exporter v0.8.1
- 17: PG Exporter v0.8.0
- 18: PG Exporter v0.7.1
- 19: PG Exporter v0.7.0
- 20: PG Exporter v0.6.1
- 21: PG Exporter v0.6.0
- 22: PG Exporter v0.5.0
- 23: PG Exporter v0.4.1
- 24: PG Exporter v0.4.0
- 25: PG Exporter v0.3.2
- 26: PG Exporter v0.3.1
- 27: PG Exporter v0.3.0
- 28: PG Exporter v0.2.0
- 29: PG Exporter v0.1.2
- 30: PG Exporter v0.1.1
- 31: PG Exporter v0.1.0
- 32: PG Exporter v0.0.5
- 33: PG Exporter v0.0.4
- 34: PG Exporter v0.0.3
- 35: PG Exporter v0.0.2
- 36: PG Exporter v0.0.1
归档覆盖从 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
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 二进制。
升级提示
-
同步部署采集器配置。 仅替换二进制不会应用 SQL 与标签修正。替换
/etc/pg_exporter.yml前,请先合并本地自定义配置。 -
检查
pg_sub_*标签变化。 新增datname会产生新时序;按需在 PromQL 连接与聚合中保留数据库身份。pg_sub_id仍为 Gauge。 -
补齐 PG10–13 的订阅权限。 管理员须在每个用作 Exporter 主连接数据库 的库中,对实际监控角色执行以下授权。仅在订阅所属数据库授权并不足够。它不开放
subconninfo;PG14+ 在标准目录 ACL 下无需额外授权。 -
检查接收器状态告警。
streaming=0、stopping=4、connecting=5(PG19+)、starting=6、waiting=7、restarting=8、stopped=9,未知/NULL 为-1,编码 1–3 保留。没有接收器行时仍不输出样本。 -
修正过去被容忍的非法输入。 错误 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 中。
v1.5.0 ·
2 - PG Exporter v1.4.1
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
v1.4.1 ·
3 - PG Exporter v1.4.0
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+与 PgBouncer1.8 - 1.25+ make docker恢复GOPROXY/GOSUMDB构建参数透传
工程与构建
- 构建链更新到 Go
1.26.5、exporter-toolkitv0.17.1、prometheus/commonv0.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()。详见快照直方图语义。
校验和
v1.4.0 ·
4 - PG Exporter v1.3.0
v1.3.0 提供对 PostgreSQL 19 新指标的支持,同时刷新默认采集器包、构建链和配置覆盖测试。
变更摘要
- 默认支持范围从 PostgreSQL 10-18+ 扩展到 10-19+
- 默认配置包包含 57 个
config/*.yml定义文件 - 构建依赖更新到 Go
1.26.4、lib/pq v1.12.3、Prometheus clientv1.23.2、exporter-toolkitv0.16.0。 pg_recovery_state:在恢复节点上采集pg_stat_recovery,暴露提升触发、回放 LSN、时间线、恢复事务时间与暂停状态。pg_lock_stat:采集 PG19pg_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 分支识别 PG19connecting状态。pg_slot:识别 PG19 replication slotidle_timeout失效原因。pg_db_confl:改为显式列清单,避免未来视图新增列被意外导出。pg_backup、pg_vacuuming、pg_clustering继续复用现有稳定分支,避免为低价值 PG19 字段改变已有指标面。
校验和
v1.3.0 ·
5 - PG Exporter v1.2.2
v1.2.2 将发布构建使用的 Go 更新到 1.26.2。Exporter 功能与配置不变。
校验和
v1.2.2 ·
6 - PG Exporter v1.2.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+与 PgBouncer1.8 - 1.25+,并更新 Pigsty 文档入口链接
校验和
v1.2.1 ·
7 - PG Exporter v1.2.0
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 规则校验
校验和
v1.2.0 ·
8 - PG Exporter v1.1.2
修复 pg_timeline 配置问题,并更新 Go 依赖。
校验和
v1.1.2 ·
9 - PG Exporter v1.1.1
小版本更新,新增采集器和 Bug 修复。
新功能
- 新增
pg_timeline采集器,用于时间线监控 - 新增
pg_sub_16采集器分支,排除订阅中的并行操作(PostgreSQL 16+ 兼容性)
Bug 修复
- 修复:为
pg_recv采集器的 slotname 添加 coalesce 以处理 NULL 值
校验和
v1.1.1 ·
10 - PG Exporter v1.1.0
更新依赖,使用 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类型转换
- 新增 15 个指标:
pg_size:修复日志目录大小检测,使用logging_collector检查代替路径模式匹配pg_table:性能优化,用 JOIN 替换 LATERAL 子查询以提升查询性能;修复tuples和frozenxid指标类型从 COUNTER 改为 GAUGE;超时从 1s 增加到 2spg_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格式对齐修复
其他变更
- 由 @anayrat 修复发布年份
校验和
v1.1.0 ·
11 - PG Exporter v1.0.3
校验和
v1.0.3 ·
12 - PG Exporter v1.0.2
- 更新依赖,使用 Go 1.25.0 构建。
- 新增 PG Exporter 独立网站。
- 使用 GoReleaser 通过 CI/CD 流水线发布更多操作系统/架构:
- 新增 Windows amd64 支持
- 新增 Linux ppc64le 支持
校验和
v1.0.2 ·
13 - PG Exporter v1.0.1
- 新增 Docker Hub 镜像:pgsty/pg_exporter
- 更新 Go 依赖,使用 Go 1.24.5 构建。
- 默认禁用
pg_tsdb_hypertable采集器,因为timescaledb目录已变更
校验和
v1.0.1 ·
14 - PG Exporter v1.0.0
变更
新增 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 校验和:
v1.0.0 ·
15 - PG Exporter v0.9.0
默认采集器
- 新增
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复杂度 - 使用额外数字前缀重命名指标采集器以便排序
- 更新依赖。
- 在所有非致命采集器之前执行致命采集器,快速失败
v0.9.0 ·
16 - PG Exporter v0.8.1
变更
- 更新依赖。
- 升级 golang.org/x/net 从 0.35.0 到 0.36.0 #67
- 更新 Docker 镜像构建标签
v0.8.1 ·
17 - PG Exporter v0.8.0
变更
- 新增 PgBouncer 1.24 新指标支持(stat、pool、database)
- 修复:
310-pg_size.yml在日志目录设置不正确时失败 #64,由 @Süleyman Vurucu 贡献 - 使用最新 Go 1.24 构建并升级所有依赖
- 使用标准
log/slog重构日志,替代go-kit完整变更日志
v0.8.0 ·
18 - PG Exporter v0.7.1
变更
使用 dependabot 进行例行更新
- 功能:支持将配置指定为 Reader,由 @ringerc 在 #62 贡献
- 升级 golang.org/x/crypto 从 0.21.0 到 0.31.0,由 @dependabot 在 #63 贡献
- 修复一些拼写错误 完整变更日志
v0.7.1 ·
19 - PG Exporter v0.7.0
变更
更新代码库以使用 Go 1.22.4。
-
PostgreSQL 17 指标支持,由 @Vonng 贡献
-
pg_exporter: “bind: address already in use” 后不再 panic,由 @ringerc 贡献
-
修复一些拼写错误和指标描述错误,由 @ringerc 贡献
-
新增 PgBouncer 1.23 指标(源码提交)。
-
修正日志调用位置(#55,@ulysseskk)。
v0.7.0 ·
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 校验和:
v0.6.1 ·
21 - PG Exporter v0.6.0
变更
- 更新依赖,修复已报告的漏洞。
- 新增 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列。
v0.6.0 ·
22 - PG Exporter v0.5.0
导出器变更
- 使用 nFPM 构建 RPM 和 DEB 包。
- 新增
column.default,用指定值替代 NULL。 - 新增
column.scale,用于数值缩放,例如将微秒转换为秒。 - 修复
/stat输出。 - 新增
pgsty/pg_exporterDocker 镜像。
采集器变更
- 将
pg_wal、pg_query、pg_db、pg_bgwriter、pg_ssl和pgbouncer_stat的时间指标统一为秒。 - 将
pg_class指标移入pg_table与pg_index。 - 默认启用
pg_table_size。
v0.5.0 ·
23 - PG Exporter v0.4.1
变更
- 对象监控排除 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。
v0.4.1 ·
24 - PG Exporter v0.4.0
变更
- 新增 PostgreSQL 14 支持。
- 调整默认指标配置,继续支持旧配置文件。
- 新增
--auto-discovery、--include-database和--exclude-database。 - 通过自动发现支持多数据库采集。
v0.4.0 ·
25 - PG Exporter v0.3.2
变更
- 修复脱敏连接串的边界情况。
- 修正文档与拼写错误。
v0.3.2 ·
26 - PG Exporter v0.3.1
变更
修复默认配置错误,主要影响 PostgreSQL 13 之前的版本:
- 将
primary_conninfo采集限制在支持它的采集器分支。 - 为
pg_func增加funcid标签,区分同名函数。 - 将版本输出中的程序名修正为
pg_exporter。
v0.3.1 ·
27 - PG Exporter v0.3.0
变更
- 更新默认配置,支持 PostgreSQL 13 指标,包括
pg_slru、pg_shmem、pg_query13和pg_backup。 - 新增健康与恢复状态检查的 HTTP 端点。
- 在初始化完成前提供 HTTP 服务,并报告
pg_up 0。 - 连接 URL 未指定
sslmode时,补充sslmode=disable。 - 修复程序与拼写错误。
v0.3.0 ·
28 - PG Exporter v0.2.0
变更
- 新增供 YUM 安装的 RPM 包及 Linux 服务定义。
- 为查询配置新增
skip选项。 - 修复
pgbouncer_up指标。 - 新增配置重载支持。
v0.2.0 ·
29 - PG Exporter v0.1.2
变更
- 修复
pgbouncer_up指标。 - 新增动态配置重载。
- 移除分片相关逻辑。
- 在默认配置中新增
bulky模式。
v0.1.2 ·
30 - PG Exporter v0.1.1
变更
- 修复查询失败导致启动挂起的问题。
v0.1.1 ·
32 - PG Exporter v0.0.5
这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。
变更
- 为每个采集器查询增加超时控制
- 以
fatal采集器策略替代早期的skip_error行为 - 调整采集器优先级语义
- 修复内置的
pg_up指标 - 为每个内置采集器补充文档
v0.0.5 ·
33 - PG Exporter v0.0.4
变更
在 200 多个生产节点上测试约两周。
v0.0.4 ·
34 - PG Exporter v0.0.3
变更
通过生产环境测试;项目当时仍处于快速开发阶段。
v0.0.3 ·
36 - PG Exporter v0.0.1
此早期版本只有 Git 标签,没有独立 GitHub Release。本文依据标签和历史发布摘要整理。
变更
- 新增 PgBouncer 模式。
v0.0.1 ·