PG Exporter 发布

pg_exporter 指标收集器发布说明

Prometheus 提供的高级 PostgreSQLpgBouncer 指标 exporter

PG Exporter 通过声明式配置动态规划可定制收集器为您的 PostgreSQL 带来终极监控体验。 它提供 600+ 指标和每个实例约 3K 时间序列,涵盖 PostgreSQL 可观测性所需的一切。 查看 GitHub 仓库 了解更多详情。

pg_exporter 的最新稳定版本是 v1.0.2

版本日期摘要GitHub
v1.1.02025-12-25批量修复指标收集器问题,收集更多配置参数v1.1.0
v1.0.22025-08-14CI/CD 构建管道,使用 Go1.25, https://exp.pgsty.comv1.0.2
v1.0.12025-07-17DockerHub 镜像,Go 1.24.5,禁用 pg_tsdb_hypertablev1.0.1
v1.0.02025-05-06PostgreSQL 18 支持,新的 WAL/checkpointer/I/O 指标v1.0.0
v0.9.02025-04-26TimescaleDB、Citus、pg_wait_sampling 收集器v0.9.0
v0.8.12025-02-14依赖项更新,docker 镜像标签v0.8.1
v0.8.02025-02-14PgBouncer 1.24 支持,Go 1.24,日志重构v0.8.0
v0.7.12024-08-13常规更新,配置作为 Reader 支持v0.7.1
v0.7.02024-08-13PostgreSQL 17 支持,谓词查询功能v0.7.0
v0.6.02023-10-18PostgreSQL 16 支持,ARM64 包,安全修复v0.6.0
v0.5.02022-04-28RPM/DEB 构建,列缩放,指标增强v0.5.0
v0.4.12022-03-08收集器更新,connect-timeout 参数v0.4.1
v0.4.02021-07-12PostgreSQL 14 支持,自动发现功能v0.4.0
v0.3.22021-02-01Shadow DSN 修复,文档更新v0.3.2
v0.3.12020-12-04旧版 PostgreSQL 版本的配置修复v0.3.1
v0.3.02020-10-29PostgreSQL 13 支持,REST API,虚拟服务器v0.3.0
v0.2.02020-03-21YUM 包,配置重载支持v0.2.0
v0.1.22020-02-20动态配置重载,批量模式v0.1.2
v0.1.12020-01-10启动挂起错误修复v0.1.1
v0.1.02020-01-08初始稳定版本v0.1.0
v0.0.42019-12-20生产测试版本v0.0.4
v0.0.32019-12-14生产环境测试v0.0.3
v0.0.22019-12-09早期测试版本v0.0.2
v0.0.12019-12-06带有 PgBouncer 模式的初始版本v0.0.1

v1.1.0

使用 Go 1.25.5 及最新依赖构建,采集器更新如下:

采集器变更:

  • pg_setting:针对 PG10-18 兼容性进行重构,支持 missing_ok 参数
    • 新增 13 个指标:max_parallel_workersmax_parallel_workers_per_gathermax_parallel_maintenance_workersshared_buffersmaintenance_work_memeffective_cache_sizefsyncfull_page_writesautovacuumautovacuum_max_workerscheckpoint_timeoutcheckpoint_completion_targethot_standbysynchronous_commitio_method
    • work_memory_size 重命名为 work_mem
    • 最低版本要求从 9.6 调整为 10,显式使用 ::int 类型转换
  • pg_size:修复日志目录大小检测逻辑,改用 logging_collector 参数判断,取代路径模式匹配
  • pg_table:性能优化,将 LATERAL 子查询改为 JOIN 以提升查询性能;修复 tuplesfrozenxid 指标类型(从 COUNTER 改为 GAUGE);超时时间从 1 秒延长至 2 秒
  • pg_vacuuming:新增 PG17 采集器分支,增加 indexes_totalindexes_processeddead_tuple_bytes 指标,用于追踪索引清理进度
  • pg_query:超时时间从 1 秒延长至 2 秒,以适应高负载场景
  • 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_dbpg_indexingpg_clusteringpg_backup 的格式对齐问题
  • 感谢 @anayrat 修正发布年份 校验和

https://github.com/pgsty/pg_exporter/releases/download/v1.1.0/checksums.txt


v1.0.2

  • 使用 Go 1.25 构建,更新依赖至最新版本。
  • 新网站首页:https://exp.pgsty.com
  • 使用 goreleaser 自动化构建,集成 GitHub Actions CI/CD
  • 添加 windows amd64 构建目标
  • 添加 linux ppc64le 构建目标

校验和

https://github.com/pgsty/pg_exporter/releases/download/v1.0.2/checksums.txt


v1.0.1

  • 添加 dockerhub 镜像: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

https://github.com/pgsty/pg_exporter/releases/tag/v1.0.1


v1.0.0

添加 PostgreSQL 18 指标支持

  • 新收集器分支 pg_wal_18
  • 移除 writesyncwrite_timesync_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_launch
  • table_parallel_workers_launched
  • 新收集器分支 pg_io_18
  • 关于 WAL 统计的新系列
  • 新指标 read_bytes
  • 新指标 write_bytes
  • 新指标 extend_bytes
  • 由于固定值移除 op_bytes
  • 新收集器分支 pg_vacuuming_18
  • 新指标 delay_time
8637bc1a05b93eedfbfd3816cca468dd  pg_exporter-1.0.0-1.aarch64.rpm
a28c4c0dcdd3bf412268a2dbff79f5b9  pg_exporter-1.0.0-1.x86_64.rpm
229129209b8e6bc356c28043c7c22359  pg_exporter-v1.0.0.darwin-amd64.tar.gz
d941c2c28301269e62a8853c93facf12  pg_exporter-v1.0.0.darwin-arm64.tar.gz
5bbb94db46cacca4075d4c341c54db37  pg_exporter-v1.0.0.linux-amd64.tar.gz
da9ad428a50546a507a542d808f1c0fa  pg_exporter-v1.0.0.linux-arm64.tar.gz
0fa2395d9d7a43ab87e5c87e5b06ffcc  pg-exporter_1.0.0_amd64.deb
fed56f8a37e30cc59e85f03c81fce3f5  pg-exporter_1.0.0_arm64.deb

https://github.com/pgsty/pg_exporter/releases/tag/v1.0.0


v0.9.0

默认收集器

  • timescaledb hypertable 新增指标收集器
  • 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 类型从 GAUGECOUNTER
  • 修复 pg_recv.state 类型从 LABELGAUGE
  • 以紧凑模式格式化收集器
  • 新的默认指标 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

Exporter 代码库

  • 使用最小 pg 版本后缀规范化收集器分支名称
  • 向二进制包添加许可证文件
  • pgsty/pg_exporter 仓库移动到 pgsty/pg_exporter
  • 重构 server.go 以减少 CompatiblePostgresPrecheck 复杂性
  • 使用额外的数字前缀重命名指标收集器以更好地排序
  • 将依赖项升级到最新版本
  • 在所有非致命收集器之前执行致命收集器,并快速失败

https://github.com/pgsty/pg_exporter/releases/tag/v0.9.0


v0.8.1

https://github.com/pgsty/pg_exporter/releases/tag/v0.8.1


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

https://github.com/pgsty/pg_exporter/releases/tag/v0.8.0


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

https://github.com/pgsty/pg_exporter/releases/tag/v0.7.1


v0.7.0

为最新的 go 版本重构代码库。

https://github.com/pgsty/pg_exporter/releases/tag/v0.7.0


v0.6.0

https://github.com/pgsty/pg_exporter/releases/tag/v0.6.0


v0.5.0

Exporter 增强

  • 使用 nfpm 构建 rpm 和 deb
  • 添加 column.default,当指标值为 NULL 时替换
  • 添加 column.scale,当指标值为 float/int 时乘以缩放因子(例如 µs 到秒)
  • 修复 /stat 端点输出
  • 添加 docker 容器 pgsty/pg_exporter

指标收集器

  • 将 bgwriter 和 pg_wal 时间单位缩放为秒
  • 移除 pg_class 收集器并将其移动到 pg_table 和 pg_inex
  • 向 pg_table 添加 pg_class 指标
  • 向 pg_index 添加 pg_class 指标
  • 默认启用 pg_table_size
  • 将 pg_query pg_db pg_bgwriter pg_ssl pgbouncer_stat 时间指标缩放为秒

https://github.com/pgsty/pg_exporter/releases/tag/v0.5.0


v0.4.1

  • 更新默认收集器
    • 在对象监控中省略 citus 和 timescaledb 模式
    • 避免重复的 pg_statio 元组
    • 支持 pgbouncer v1.16
    • 错误修复:pg_repl 收集器在 pg 12 上重叠
  • 新参数:-T connect-timeout PG_EXPORTER_CONNECT_TIMEOUT 这在监控远程 Postgres 实例时很有用。
  • 现在在 rpm 包中 pg_exporter.yaml 重命名为 pg_exporter.yml

https://github.com/pgsty/pg_exporter/releases/tag/v0.4.1


v0.4.0

  • 添加 PG 14 支持
  • 默认指标配置全面改进。(但您仍然可以使用旧配置)
  • 添加 auto-discoveryinclude-databaseexclude-database 选项
  • 添加多数据库监控实现(使用 auto-discovery = on

https://github.com/pgsty/pg_exporter/releases/tag/v0.4.0


v0.3.2

  • 修复 shadow DSN 边界情况
  • 修复拼写错误和文档

https://github.com/pgsty/pg_exporter/releases/tag/v0.3.2


v0.3.1

修复默认配置问题(特别是对于低于 13 的版本)

  • 设置 primary_conninfo 直到 PG13 才存在
  • pg_func 收集器添加 funcid 标签以避免函数名重复标签
  • 将版本字符串修复为 pg_exporter

https://github.com/pgsty/pg_exporter/releases/tag/v0.3.1


v0.3.0

https://github.com/pgsty/pg_exporter/releases/tag/v0.3.0

  • 更改默认配置,支持 PostgreSQL 13 新指标(pg_slrupg_shmempg_query13pg_backup 等…)
  • 添加一系列新的 REST API 用于健康/恢复状态检查
  • 添加一个虚拟服务器,提供假的 pg_up 0 指标,在 PgExporter 初始化之前提供服务。
  • 如果未给出 sslmode,则向 URL 添加 sslmode=disable
  • 修复拼写错误和错误

v0.2.0

  • 添加 yum 包和 linux 服务定义
  • 向查询配置添加 ‘skip’ 标志
  • 修复 pgbouncer_up 指标
  • 添加配置重载支持

https://github.com/pgsty/pg_exporter/releases/tag/v0.2.0


v0.1.2

  • 修复 pgbouncer_up 指标
  • 添加动态配置重载
  • 移除 ‘shard’ 相关逻辑
  • 向默认设置添加 ‘bulky’ 模式

https://github.com/pgsty/pg_exporter/releases/tag/v0.1.2


v0.1.1

修复 pg_exporter 在启动期间如果任何查询失败会挂起的错误。

https://github.com/pgsty/pg_exporter/releases/tag/v0.1.1


v0.1.0

它工作,看起来不错。

https://github.com/pgsty/pg_exporter/releases/tag/v0.1.0


v0.0.4

在真实的生产环境中测试了约 2 周,有 200+ 个节点。看起来不错!

https://github.com/pgsty/pg_exporter/releases/tag/v0.0.4


v0.0.3

v0.0.3 发布,在生产环境中测试

此版本已在生产环境中测试。

这个项目仍在快速发展中,我想说如果您想在生产中使用它,请谨慎尝试。

https://github.com/pgsty/pg_exporter/releases/tag/v0.0.3


v0.0.2

现在可以尝试了

https://github.com/pgsty/pg_exporter/releases/tag/v0.0.2


v0.0.1

添加 pgbouncer 模式

https://github.com/pgsty/pg_exporter/releases/tag/v0.0.1