PostgreSQL系统指标收集器-pgSCV
pgSCV 是 PostgreSQL 生态系统指标收集器,采用Go语言开发并在3类BSD协议下授权。收集了很多关于 PostgreSQL 环境的统计信息;
通过 HTTP/metrics端点以 Prometheus 指标展示格式公开指标;
特点
支持的服务: PostgreSQL、Pgbouncer、Patroni、操作系统指标。
Pull 模式:pgSCV 可以侦听/metrics端点并服务来自Prometheus或 的请求Victoriametrics' Vmagent。
Push 模式:pgSCV 可以抓取自己的/metrics端点并将抓取的指标推送到指定的 HTTP 服务。此功能主要用于向 Weaponry SaaS 发送指标,但不限于此目的。
TLS 和身份验证:/metrics端点可以使用基本身份验证和 TLS 进行保护。
从多个服务收集指标:pgSCV 可以从许多数据库实例收集指标。
服务自动发现:pgSCV 可以自动发现 Postgres 和其他 Postgres 生态系统服务并开始从它们收集指标。在身份验证的情况下,应指定有效的先决条件。
远程服务支持:建议在运行受监控服务的相同系统上启动 pgSCV。但这并不严格,pgSCV 可以连接并从远程服务收集指标。
引导程序:pgSCV 可以自行引导 - 这是一次性过程,在引导期间 pgSCV 将自身安装到系统路径中,创建最少的必需配置,安装 systemd 单元并自行启动。需要root权限。
自动更新:pgSCV 可以跟踪新版本并自行更新。此功能主要对武器用户有用。需要root权限。
用户定义的指标:pgSCV 可以配置为收集用户定义的指标。
要求
只能在 Linux 上运行;可以连接到在其他 OS/PaaS 上运行的远程服务;
连接到服务的必要条件,例如登录名和密码;
数据库用户应该具有执行统计功能和阅读视图的权限;
最新版本:0
v0.7.0 正式版本于2021年7月下旬发布,更新内容如下:
增加对 Patroni 的支持;
增加 Patroni 指标与 Patroni 2.1.0 中引入的内置指标的兼容性;
增加 TLS 支持与基本认证;
在每次调用收集器之前发现 postgres 设置,Postgres 设置描述了 Postgres 的属性,如版本、数据和 WAL 块大小、pg_stat_statements 的位置等等,这些设置被收集器使用以调整指标收集。
移除查询规范化;在声明指标中使用 queryid 标签替代 md5;
修正只用 ENV 变量配置时禁用自动发现的问题;
修正文件系统挂起时的指标收集;
v0.15.0 现已于2025年9月中旬发布,实现了许多新功能并修复了许多问题,以下是主要新功能的简短列表:
改进了对 PostgreSQL v18 的支持
添加了初始 AWS Aurora Postgres 支持
添加了 collect pg_is_wal_replay_paused () metrics
为 Patroni collector 添加 skip_conn_error_mode 设置支持
项目主页:https://github.com/weaponry/pgscv