# PG Exporter

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

**为 [Prometheus](https://prometheus.io/) 提供的高级 [PostgreSQL](https://www.postgresql.org) 和 [pgBouncer](https://www.pgbouncer.org/) 指标 [exporter](https://prometheus.io/docs/instrumenting/exporters/)**

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

`pg_exporter` 的最新稳定版本是 [v1.0.3](https://github.com/pgsty/pg_exporter/releases/tag/v1.0.3)

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


------

## v1.0.3

- 使用 Go 1.25.4 与最新依赖构建
- 修复 [#80](https://github.com/pgsty/pg_exporter/issues/80)：与 libpq 环境变量冲突
- 由 [@kadaffy](https://github.com/kadaffy) 将 `auto-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

```bash
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 {#101}

- 添加 dockerhub 镜像：[pgsty/pg_exporter](https://hub.docker.com/r/pgsty/pg_exporter)
- 将 go 依赖项升级到最新版本，使用 go 1.24.5 构建
- 默认禁用 `pg_tsdb_hypertable` 收集器，因为 `timescaledb` 目录已更改。

**校验和**

```bash
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 {#100}

添加 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`

```bash
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 {#090}

**默认收集器**

* 为 `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 {#081}

* 将依赖项升级到最新版本
* [将 golang.org/x/net 从 0.35.0 升级到 0.36.0 #67](https://github.com/pgsty/pg_exporter/pull/67)
* 更新 docker 镜像构建标签

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

------

## 0.8.0 {#080}

* 添加 PgBouncer 1.24 新指标支持（stat、pool、database）
* 修复：如果日志目录设置不当，`310-pg_size.yml` 失败 [#64](https://github.com/pgsty/pg_exporter/issues/64) 由 [@Süleyman Vurucu](https://github.com/suikast42) 提供
* 使用最新的 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 {#071}

使用 dependabot 进行常规更新

* 功能：支持将配置指定为 Reader，由 [@ringerc](https://github.com/ringerc) 在 [#62](https://github.com/pgsty/pg_exporter/pull/62) 中提供
* 将 golang.org/x/crypto 从 0.21.0 升级到 0.31.0，由 [@dependabot](https://github.com/dependabot) 在 [#63](https://github.com/pgsty/pg_exporter/pull/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 {#070}

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

- [PostgreSQL 17 指标支持](https://github.com/pgsty/pg_exporter/issues/53) 由 @Vonng 提供
- [pg_exporter：谓词查询功能](https://github.com/pgsty/pg_exporter/pull/47) 由 [@ringerc](https://github.com/ringerc) 提供
- [在 dockerfile 中进行清洁构建](https://github.com/pgsty/pg_exporter/pull/54) 由 [@ringerc](https://github.com/ringerc) 提供
- [pg_exporter：在"bind: address already in use"后不要 panic](https://github.com/pgsty/pg_exporter/pull/46) 由 [@ringerc](https://github.com/ringerc) 提供
- [pg_exporter：修复 /stat 端点格式](https://github.com/pgsty/pg_exporter/pull/48) 由 [@ringerc](https://github.com/ringerc) 提供
- [pg_exporter：在 yaml 导出时省略默认查询属性](https://github.com/pgsty/pg_exporter/pull/49) 由 [@ringerc](https://github.com/ringerc) 提供
- [从发现中排除模板数据库并模式限定发现查询](https://github.com/pgsty/pg_exporter/pull/50) 由 [@ringerc](https://github.com/ringerc) 提供
- [修复一些拼写错误和一些指标描述错误](https://github.com/pgsty/pg_exporter/pull/51) 由 [@ringerc](https://github.com/ringerc) 提供
- [从无维护的 lib/pq 驱动程序切换到带有 stdlib 包装器的 pgx](https://github.com/pgsty/pg_exporter/pull/52) 由 [@ringerc](https://github.com/ringerc) 提供

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

------

## 0.6.0 {#060}

- 安全增强：修复 [安全](https://github.com/pgsty/pg_exporter/security/dependabot?q=is%3Aclosed) dependent-bot 问题
- 添加 pg16 收集器
- 添加 `arm64` 和 `aarch64` 包
- 移除 `pg_query` 收集器的 `monitor` 模式要求（您必须通过 search_path 确保这一点，或者只是在默认的 `public` 模式中安装 `pg_stat_statements`）
- 将 pgbouncer 版本解析消息级别从 info 修复为 debug
- 修复 `pg_table_10_12` 收集器缺少 `relid` 问题。

- [识别配置目录中带有 yml 后缀的文件](https://github.com/pgsty/pg_exporter/pull/34) 由 [@Japin Li](https://github.com/japinli) 提供
- [支持 PostgreSQL 15 及更高版本](https://github.com/pgsty/pg_exporter/pull/35) 由 [@Japin Li](https://github.com/japinli) 提供
- [修复 connect-timeout 传播](https://github.com/pgsty/pg_exporter/pull/37/files) 由 [@mouchar](https://github.com/mouchar) 提供

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

------

## 0.5.0 {#050}

**Exporter 增强**

- 使用 `nfpm` 构建 rpm 和 deb
- 添加 `column.default`，当指标值为 NULL 时替换
- 添加 `column.scale`，当指标值为 float/int 时乘以缩放因子（例如 µs 到秒）
- 修复 `/stat` 端点输出
- 添加 docker 容器 [`pgsty/pg_exporter`](https://hub.docker.com/r/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 {#041}

- 更新默认收集器
  - 在对象监控中省略 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 {#040}

- 添加 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 {#032}

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

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

------

## 0.3.1 {#031}

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

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

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

------

## 0.3.0 {#030}

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 {#020}

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

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

------

## 0.1.2 {#012}

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

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

------

## 0.1.1 {#011}

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

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

------

## 0.1.0 {#010}

它工作，看起来不错。

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

------

## 0.0.4 {#004}

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

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

------

## 0.0.3 {#003}

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

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

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

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

------

## 0.0.2 {#002}

现在可以尝试了

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

------

## 0.0.1 {#001}

添加 pgbouncer 模式

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