这是本节的多页打印视图。 .
发布注记
- 1: PG Exporter v1.4.1
- 2: PG Exporter v1.4.0
- 3: PG Exporter v1.3.0
- 4: PG Exporter v1.2.2
- 5: PG Exporter v1.2.1
- 6: PG Exporter v1.2.0
- 7: PG Exporter v1.1.2
- 8: PG Exporter v1.1.1
- 9: PG Exporter v1.1.0
- 10: PG Exporter v1.0.3
- 11: PG Exporter v1.0.2
- 12: PG Exporter v1.0.1
- 13: PG Exporter v1.0.0
- 14: PG Exporter v0.9.0
- 15: PG Exporter v0.8.1
- 16: PG Exporter v0.8.0
- 17: PG Exporter v0.7.1
- 18: PG Exporter v0.7.0
- 19: PG Exporter v0.6.1
- 20: PG Exporter v0.6.0
- 21: PG Exporter v0.5.0
- 22: PG Exporter v0.4.1
- 23: PG Exporter v0.4.0
- 24: PG Exporter v0.3.2
- 25: PG Exporter v0.3.1
- 26: PG Exporter v0.3.0
- 27: PG Exporter v0.2.0
- 28: PG Exporter v0.1.2
- 29: PG Exporter v0.1.1
- 30: PG Exporter v0.1.0
- 31: PG Exporter v0.0.5
- 32: PG Exporter v0.0.4
- 33: PG Exporter v0.0.3
- 34: PG Exporter v0.0.2
- 35: PG Exporter v0.0.1
这里按时间倒序收录 pg_exporter 的每个仓库标签:从 v0.0.1 到 v1.4.1,共 35 个标签版本,每个版本一篇文章。
GitHub 当前有 33 个正式 Release 对象;v0.0.1 与 v0.0.5 两个仅有标签的早期版本也作为历史归档保留,并在文章内明确标注。存在 Release 时使用 GitHub 发布时间,否则使用源码标签时间,统一换算为 Asia/Shanghai(UTC+08:00)。
当前产物请从最新 GitHub Release下载;软件仓库、归档包、容器、Pigsty 与源码构建方式参见下载指南。
1 - 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 ·
2 - PG Exporter v1.4.0
v1.4.0 引入快照直方图(Snapshot Histogram)指标类型与新的 pg_xact_age 事务年龄采集器,并对 HTTP 路由、打包与构建链进行了一轮系统性加固。
新功能
- 新增
HISTOGRAM列类型:SQL 查询快照可按标签组直接聚合为经典 Prometheus 直方图,派生_bucket/_count/_sum三族序列;桶边界在配置加载阶段严格校验(有限、严格递增,自动追加+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不可再用作常量标签
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.4.0/checksums.txt
v1.4.0 ·
3 - 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 字段改变已有指标面。
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.3.0/checksums.txt
v1.3.0 ·
4 - PG Exporter v1.2.2
v1.2.2 是一次例行维护发布,仅将发布构建链更新到 Go 1.26.2,未引入新的采集器、配置语义或运行时行为变更。
变更摘要
- 刷新构建链:发布流程更新到 Go
1.26.2 - 无功能改动:未调整采集器、默认配置、指标定义或运行时行为
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.2.2/checksums.txt
v1.2.2 ·
5 - 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 ·
6 - PG Exporter v1.2.0
v1.2.0 是一次聚焦稳定性与兼容性的中版本更新,覆盖启动流程、热重载、健康检查、配置校验与 Legacy 支持。
新功能
- 支持配置热重载:新增平台相关的信号重载(
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 规则校验
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.2.0/checksums.txt
v1.2.0 ·
7 - PG Exporter v1.1.2
小版本更新,修复 pg_timeline 配置问题,使用最新 Go 依赖构建。
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.1.2/checksums.txt
v1.1.2 ·
8 - PG Exporter v1.1.1
小版本更新,新增采集器和 Bug 修复。
新功能
- 新增
pg_timeline采集器,用于时间线监控 - 新增
pg_sub_16采集器分支,排除订阅中的并行操作(PostgreSQL 16+ 兼容性)
Bug 修复
- 修复:为
pg_recv采集器的 slotname 添加 coalesce 以处理 NULL 值
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.1.1/checksums.txt
v1.1.1 ·
9 - PG Exporter v1.1.0
使用 Go 1.25.5 和最新依赖构建,采集器更新:
采集器变更
pg_setting:针对 PG10-18 兼容性进行重大重构,支持missing_ok- 新增 13 个指标:
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类型转换
- 新增 13 个指标:
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 修复发布年份
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.1.0/checksums.txt
v1.1.0 ·
10 - PG Exporter v1.0.3
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.0.3/checksums.txt
v1.0.3 ·
11 - PG Exporter v1.0.2
- 使用 Go 1.25.0 和最新依赖构建
- 专属网站和主页:https://exp.pgsty.com
- 使用 goreleaser 通过 CI/CD 流水线发布更多操作系统/架构:
- 新增 Windows amd64 支持
- 新增 Linux ppc64le 支持
校验和
https://github.com/pgsty/pg_exporter/releases/download/v1.0.2/checksums.txt
v1.0.2 ·
12 - PG Exporter v1.0.1
- 新增 Docker Hub 镜像:pgsty/pg_exporter
- 升级 Go 依赖到最新版本,使用 Go 1.24.5 构建
- 默认禁用
pg_tsdb_hypertable采集器,因为timescaledb目录已变更
校验和
v1.0.1 ·
13 - PG Exporter v1.0.0
变更
新增 PostgreSQL 18 指标支持
- 新采集器分支
pg_wal_18:- 移除
write、sync、write_time、sync_time指标 - 移至
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_launchtable_parallel_workers_launched
- 新采集器分支
pg_io_18:- 新增 WAL 统计系列
- 新指标
read_bytes - 新指标
write_bytes - 新指标
extend_bytes - 移除
op_bytes(因为是固定值)
- 新采集器分支
pg_vacuuming_18:- 新指标
delay_time
- 新指标
v1.0.0 ·
14 - 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
- wal_log_hints
- work_mem
- hugepage_count
- hugepage_status
- max_wal_size
- min_wal_size
- max_slot_wal_keep_size
导出器代码库
- 使用最小 PG 版本后缀规范化采集器分支名称
- 为二进制包添加许可证文件
- 将
pgsty/pg_exporter仓库移至pgsty/pg_exporter - 重构
server.go以降低Compatible和PostgresPrecheck复杂度 - 使用额外数字前缀重命名指标采集器以便排序
- 升级依赖到最新版本
- 在所有非致命采集器之前执行致命采集器,快速失败
v0.9.0 ·
15 - PG Exporter v0.8.1
变更
- 升级依赖到最新版本
- 升级 golang.org/x/net 从 0.35.0 到 0.36.0 #67
- 更新 Docker 镜像构建标签
v0.8.1 ·
16 - 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 - 完整变更日志:https://github.com/pgsty/pg_exporter/compare/v0.7.1…v0.8.0
v0.8.0 ·
17 - PG Exporter v0.7.1
变更
使用 dependabot 进行例行更新
- 功能:支持将配置指定为 Reader,由 @ringerc 在 #62 贡献
- 升级 golang.org/x/crypto 从 0.21.0 到 0.31.0,由 @dependabot 在 #63 贡献
- 修复一些拼写错误
- 完整变更日志:https://github.com/pgsty/pg_exporter/compare/v0.7.0…v0.7.1
v0.7.1 ·
18 - PG Exporter v0.7.0
变更
为最新 Go 版本重构代码库。
- PostgreSQL 17 指标支持,由 @Vonng 贡献
- pg_exporter: 谓词查询功能,由 @ringerc 贡献
- 在 Dockerfile 中进行干净构建,由 @ringerc 贡献
- pg_exporter: “bind: address already in use” 后不再 panic,由 @ringerc 贡献
- pg_exporter: 修复 /stat 端点格式,由 @ringerc 贡献
- pg_exporter: yaml 导出时省略默认查询属性,由 @ringerc 贡献
- 从发现中排除模板数据库并模式限定发现查询,由 @ringerc 贡献
- 修复一些拼写错误和指标描述错误,由 @ringerc 贡献
- 从废弃的 lib/pq 驱动切换到带 stdlib 包装的 pgx,由 @ringerc 贡献
v0.7.0 ·
19 - PG Exporter v0.6.1
变更
- 将
golang.org/x/net从v0.10.0升级到v0.17.0,纳入安全修复(#38) - 修复
connect-timeout传递问题(#37),由 @mouchar 贡献 - 配置目录同时识别
.yaml与.yml文件(#34),由 @japinli 贡献
校验和
原始 Release 为压缩包与软件包发布了 MD5 校验和:
v0.6.1 ·
20 - PG Exporter v0.6.0
变更
-
安全增强:更新依赖,修复已报告的依赖漏洞
-
新增 pg16 采集器
-
新增
arm64和aarch64包 -
移除
pg_query采集器的monitor模式要求(您需要通过 search_path 确保或直接在默认public模式中安装pg_stat_statements) -
修复 pgbouncer 版本解析消息级别从 info 改为 debug
-
修复
pg_table_10_12采集器缺少relid的问题
v0.6.0 ·
21 - PG Exporter v0.5.0
导出器增强
- 使用
nfpm构建 rpm 和 deb - 新增
column.default,当指标值为 NULL 时替换 - 新增
column.scale,当指标值为浮点/整数时乘以缩放因子(例如微秒转秒) - 修复
/stat端点输出 - 新增 Docker 容器
pgsty/pg_exporter
指标采集器
- 将 bgwriter 和 pg_wal 时间单位缩放为秒
- 移除 pg_class 采集器,将其移至 pg_table 和 pg_index
- 为 pg_table 新增 pg_class 指标
- 为 pg_index 新增 pg_class 指标
- 默认启用 pg_table_size
- 将 pg_query、pg_db、pg_bgwriter、pg_ssl、pgbouncer_stat 时间指标缩放为秒
v0.5.0 ·
22 - PG Exporter v0.4.1
变更
- 更新默认采集器
- 在对象监控中省略 citus 和 timescaledb 模式
- 避免重复的 pg_statio 元组
- 支持 pgbouncer v1.16
- Bug 修复:
pg_repl采集器在 pg 12 上重叠
- 新参数:
-Tconnect-timeoutPG_EXPORTER_CONNECT_TIMEOUT这在监控远程 Postgres 实例时很有用 - 现在
pg_exporter.yaml在 rpm 包中重命名为pg_exporter.yml
v0.4.1 ·
23 - PG Exporter v0.4.0
变更
- 新增 PG 14 支持
- 默认指标配置全面改进(但您仍可使用旧配置)
- 新增
auto-discovery、include-database和exclude-database选项 - 新增多数据库监控实现(使用
auto-discovery = on)
v0.4.0 ·
24 - PG Exporter v0.3.2
变更
- 修复 shadow DSN 边界情况
- 修复拼写错误和文档
v0.3.2 ·
25 - PG Exporter v0.3.1
变更
修复默认配置问题(特别是低于 13 的版本)
- 设置
primary_conninfo在 PG13 之前不存在 - 为
pg_func采集器添加funcid标签以避免函数名重复标签 - 修复版本字符串为
pg_exporter
v0.3.1 ·
26 - PG Exporter v0.3.0
变更
https://github.com/pgsty/pg_exporter/releases/tag/v0.3.0
- 更改默认配置,支持 PostgreSQL 13 新指标(
pg_slru、pg_shmem、pg_query13、pg_backup等) - 新增一系列用于健康/恢复状态检查的 REST API
- 新增一个带有假
pg_up 0指标的虚拟服务器,在 PgExporter 初始化之前提供服务 - 如果未指定
sslmode,向 URL 添加sslmode=disable - 修复拼写错误和 Bug
v0.3.0 ·
27 - PG Exporter v0.2.0
变更
- 新增 yum 包和 Linux 服务定义
- 在查询配置中新增 ‘skip’ 标志
- 修复
pgbouncer_up指标 - 新增配置重载支持
v0.2.0 ·
28 - PG Exporter v0.1.2
变更
- 修复 pgbouncer_up 指标
- 新增动态配置重载
- 移除 ‘shard’ 相关逻辑
- 在默认设置中添加 ‘bulky’ 模式
v0.1.2 ·
29 - PG Exporter v0.1.1
变更
修复 pg_exporter 在启动时如果任何查询失败会挂起的 Bug。
v0.1.1 ·
31 - PG Exporter v0.0.5
这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。
变更
- 为每个采集器查询增加超时控制
- 以
fatal采集器策略替代早期的skip_error行为 - 调整采集器优先级语义
- 修复内置的
pg_up指标 - 为每个内置采集器补充文档
这个早期版本只有仓库标签,没有单独发布为 GitHub Release。
v0.0.5 ·
32 - PG Exporter v0.0.4
变更
在真实生产环境中测试了大约 2 周,200+ 节点。看起来不错!
v0.0.4 ·
33 - PG Exporter v0.0.3
变更
v0.0.3 发布,在生产环境中测试
此版本已在生产环境中测试。
这个项目仍在快速发展中,如果您想在生产中使用,请谨慎尝试。
v0.0.3 ·
35 - PG Exporter v0.0.1
这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。
变更
新增 pgbouncer 模式
v0.0.1 ·