跳转到主要内容

PostgreSQL + PgBouncer → Prometheus

PG Exporter

用 SQL 表达 PostgreSQL 可观测性。 指标定义留在 YAML 与 SQL 中;同一个导出器会按目标版本、角色与扩展自动选择合适的采集分支。

600+ 指标 · PostgreSQL 10–19+ · PgBouncer 1.8–1.25+

随包交付

开箱即用,而且每一项都可以检查

这里展示的是产品覆盖面,而不是宣传数字;每一项都对应当前源码树或版本归档。

600+指标位于默认合并配置中查看详情
58采集器文件带版本的 YAML + SQL 定义查看详情
10–19+PostgreSQL默认配置覆盖范围查看详情
35已归档标签从 v0.0.1 到 v1.4.1查看详情

为什么选择 PG Exporter

让懂数据库的人直接看见指标逻辑

采集行为由数据定义;运行时负责目标发现、动态规划、执行、缓存、故障隔离与 Prometheus 编码。

01 / 声明

用 YAML + SQL 定义指标

◇ 改采集器,不必重新编译二进制

  • 将查询列明确映射为 GAUGE、COUNTER、HISTOGRAM 与 LABEL。
  • 为每个采集器单独设置 TTL、超时、跳过与致命错误策略。
  • 自定义采集器可以与内置定义并列管理,按普通配置接受评审。

指标契约始终对真正理解数据库的人保持可读。

collector.yml
pg_example:
  query: SELECT value FROM view
  min_version: 100000
  tags: [cluster, primary]
  ttl: 10
  timeout: 0.1

02 / 规划

为每个目标选择正确查询

◇ 一个二进制,按目标动态执行

  • 匹配 PostgreSQL / PgBouncer 版本、主备角色、数据库与扩展。
  • 用多个查询分支处理差异,不必把所有采集器冻结在最低公共版本上。
  • 通过 /explain 查看每个分支为何入选、跳过或拒绝。

兼容性判断在运行时清清楚楚,而不是埋在版本说明里。

GET /explain
pg_wal / primary / PG17
pg_stat_statements / 1.11
pg_replica / role mismatch
pgbouncer / target mismatch

03 / 运维

导出器自身也可观察、可控制

◇ 抓取指标只是运行时的一部分

  • 通过 /stat 检查每个采集器的耗时、错误、缓存状态与输出。
  • 无需重启即可重载配置,单个采集器失败也不会抹掉其他成功结果。
  • 用健康检查及主备端点完成探针与流量决策。

PG Exporter 不只导出数据库指标,也给出运维它所需的证据。

面向生产

小巧的二进制,清晰的运行边界

01

默认配置够用

先获得完整的 PostgreSQL 与 PgBouncer 覆盖,再只接管真正需要自定义的部分。

02

行为精确可控

版本门槛、谓词、超时、缓存 TTL、失败策略与常量标签全都显式定义。

03

部署方式自由

可选择 RPM/DEB、发布压缩包、容器、Pigsty 自动化或源码构建。

下载与部署

选择适合你运行环境的交付方式

每条路径运行的都是同一个 PG Exporter 与同一套声明式采集模型;区别只在于由谁负责生命周期。

长期服务首选

Linux 软件包

从 Pigsty APT/YUM 仓库或指定版本 RPM/DEB 安装 pg-exporter,同时获得 systemd 与 /etc/default/pg_exporter

比较安装方式

Linux · macOS · Windows

发布压缩包

从 GitHub Release 获取固定版本的二进制、合并配置、服务示例、许可证与校验和。

比较安装方式

amd64 · arm64

容器镜像

运行多架构 pgsty/pg_exporter 镜像,只挂载你需要的配置或 CA 证书。

比较安装方式

完整集成或完全自定义

Pigsty 或源码

让 Pigsty 交付完整监控栈,或者使用版本标签所声明的 Go 工具链自行构建。

比较安装方式

从下载一路验证到 pg_up 1选择交付物,配置一个连接 URL,验证导出器,再把它加入 Prometheus 抓取目标。