PG Exporter
pg_exporter 指标收集器发布说明
为 Prometheus 提供的高级 PostgreSQL 和 pgBouncer 指标 exporter
PG Exporter 通过声明式配置、动态规划和可定制收集器为您的 PostgreSQL 带来终极监控体验。 它提供 600+ 指标和每个实例约 3K 时间序列,涵盖 PostgreSQL 可观测性所需的一切。 查看 GitHub 仓库 了解更多详情。
pg_exporter
的最新稳定版本是 v1.0.1
版本 | 日期 | 摘要 | GitHub |
---|---|---|---|
v1.0.1 | 2023-07-17 | DockerHub 镜像,Go 1.24.5,禁用 pg_tsdb_hypertable | v1.0.1 |
v1.0.0 | 2023-05-06 | PostgreSQL 18 支持,新的 WAL/checkpointer/I/O 指标 | v1.0.0 |
v0.9.0 | 2023-04-26 | TimescaleDB、Citus、pg_wait_sampling 收集器 | v0.9.0 |
v0.8.1 | 2024-02-14 | 依赖项更新,docker 镜像标签 | v0.8.1 |
v0.8.0 | 2024-02-14 | PgBouncer 1.24 支持,Go 1.24,日志重构 | v0.8.0 |
v0.7.1 | 2022-08-13 | 常规更新,配置作为 Reader 支持 | v0.7.1 |
v0.7.0 | 2022-08-13 | PostgreSQL 17 支持,谓词查询功能 | v0.7.0 |
v0.6.0 | 2022-10-18 | PostgreSQL 16 支持,ARM64 包,安全修复 | v0.6.0 |
v0.5.0 | 2022-04-27 | RPM/DEB 构建,列缩放,指标增强 | v0.5.0 |
v0.4.1 | 2022-03-08 | 收集器更新,connect-timeout 参数 | v0.4.1 |
v0.4.0 | 2021-07-12 | 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-14 | 生产环境测试 | v0.0.3 |
v0.0.2 | 2019-12-09 | 早期测试版本 | v0.0.2 |
v0.0.1 | 2019-12-06 | 带有 PgBouncer 模式的初始版本 | v0.0.1 |
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
: - 移除
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_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
类型从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
Exporter 代码库
- 使用最小 pg 版本后缀规范化收集器分支名称
- 向二进制包添加许可证文件
- 将
pgsty/pg_exporter
仓库移动到pgsty/pg_exporter
- 重构
server.go
以减少Compatible
和PostgresPrecheck
复杂性 - 使用额外的数字前缀重命名指标收集器以更好地排序
- 将依赖项升级到最新版本
- 在所有非致命收集器之前执行致命收集器,并快速失败
https://github.com/pgsty/pg_exporter/releases/tag/v0.9.0
0.8.1
- 将依赖项升级到最新版本
- 将 golang.org/x/net 从 0.35.0 升级到 0.36.0 #67
- 更新 docker 镜像构建标签
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 版本重构代码库。
- 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 提供
https://github.com/pgsty/pg_exporter/releases/tag/v0.7.0
0.6.0
-
安全增强:修复 安全 dependent-bot 问题
-
添加 pg16 收集器
-
添加
arm64
和aarch64
包 -
移除
pg_query
收集器的monitor
模式要求(您必须通过 search_path 确保这一点,或者只是在默认的public
模式中安装pg_stat_statements
) -
将 pgbouncer 版本解析消息级别从 info 修复为 debug
-
修复
pg_table_10_12
收集器缺少relid
问题。
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-discovery
、include-database
和exclude-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_slru
、pg_shmem
、pg_query13
、pg_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 模式