跳转到主要内容

PG Exporter

pg_exporter 指标收集器发布说明
pg_exporter 指标收集器发布说明

Prometheus 提供的高级 PostgreSQLpgBouncer 指标 exporter

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

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

版本 日期 摘要 GitHub
v1.0.3 2025-11-20 Go 1.25.4 例行更新,修复不支持的 libpq 环境变量 v1.0.3
v1.0.2 2025-08-14 CI/CD 构建管道,使用 Go
1.25, https://exp.pgsty.com
v1.0.2
v1.0.1 2025-07-17 DockerHub 镜像,Go 1.24.5,禁用 pg_tsdb_hypertable v1.0.1
v1.0.0 2025-05-06 PostgreSQL 18 支持,新的 WAL/checkpointer/I/O 指标 v1.0.0
v0.9.0 2025-04-26 TimescaleDB、Citus、pg_wait_sampling 收集器 v0.9.0
v0.8.1 2025-03-29 依赖项更新,docker 镜像标签 v0.8.1
v0.8.0 2025-02-14 PgBouncer 1.24 支持,Go 1.24,日志重构 v0.8.0
v0.7.1 2024-12-29 常规更新,配置作为 Reader 支持 v0.7.1
v0.7.0 2024-08-09 PostgreSQL 17 支持,谓词查询功能 v0.7.0
v0.6.0 2023-10-18 PostgreSQL 16 支持,ARM64 包,安全修复 v0.6.0
v0.5.0 2022-05-13 RPM/DEB 构建,列缩放,指标增强 v0.5.0
v0.4.1 2022-03-08 收集器更新,connect-timeout 参数 v0.4.1
v0.4.0 2021-05-28 PostgreSQL 14 支持,自动发现功能 v0.4.0
v0.3.2 2021-02-01 Shadow DSN 修复,文档更新 v0.3.2
v0.3.1 2020-12-04 旧版 PostgreSQL 版本的配置修复 v0.3.1
v0.3.0 2020-10-29 PostgreSQL 13 支持,REST API,虚拟服务器 v0.3.0
v0.2.0 2020-03-21 YUM 包,配置重载支持 v0.2.0
v0.1.2 2020-02-20 动态配置重载,批量模式 v0.1.2
v0.1.1 2020-01-10 启动挂起错误修复 v0.1.1
v0.1.0 2020-01-08 初始稳定版本 v0.1.0
v0.0.4 2019-12-20 生产测试版本 v0.0.4
v0.0.3 2019-12-13 生产环境测试 v0.0.3
v0.0.2 2019-12-09 早期测试版本 v0.0.2
v0.0.1 2019-12-09 带有 PgBouncer 模式的初始版本 v0.0.1

v1.0.3

  • 使用 Go 1.25.4 与最新依赖构建
  • 修复 #80:与 libpq 环境变量冲突
  • @kadaffyauto-discovery 默认值修正为 true

校验和

https://github.com/pgsty/pg_exporter/releases/download/v1.0.3/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

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

1.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


1.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


0.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


0.8.1

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


0.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


0.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


0.7.0

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

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


0.6.0

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


0.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


0.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


0.4.0

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

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


0.3.2

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

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


0.3.1

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

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

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


0.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
  • 修复拼写错误和错误

0.2.0

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

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


0.1.2

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

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


0.1.1

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

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


0.1.0

它工作,看起来不错。

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


0.0.4

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

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


0.0.3

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

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

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

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


0.0.2

现在可以尝试了

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


0.0.1

添加 pgbouncer 模式

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