2025年9月25日: PostgreSQL 18 发布!

Coroot-pg-agent - 一个用于 Prometheus 的开源 Postgres exporter

发布于 2022-07-22,作者 Coroot
相关开源项目

Coroot 团队很高兴地宣布 coroot-pg-agent 的发布——一个开源 (Apache 2.0) 的 Postgres Prometheus 导出器,专注于查询性能统计。

动机

在 Coroot,我们致力于开发一款产品,用于检测服务中断的根本原因,并为用户提供一系列可能的修复方案。

最初,我们计划使用现有的开源 Prometheus 导出器收集的指标,例如 postgres_exporter (Github 上有 1.7k 星)。不幸的是,我们意识到它收集的指标对于识别最常见的性能问题是无用的,例如:

  • CPU 密集型查询影响其他查询
  • 服务器达到 max_connections 限制,因为大部分连接都卡在 idle in transaction 状态
  • I/O 密集型查询影响其他查询
  • 一个查询通过持有独占锁来阻塞其他查询

postgres_exporter 的提议更改将过于庞大,因此我们决定构建另一个导出器。

新功能

全面的查询指标

该代理聚合了来自 pg_stat_statementspg_stat_activity 的统计信息,不仅考虑已完成的查询,还考虑仍在执行的查询。

锁监控

仅仅收集 pg_locks 中的活动锁数量是不够的。DBA 真正想知道的是哪个查询正在阻塞其他查询。收集到的指标可以提供这个问题的答案。

查询规范化和混淆

除了 Postgres 本身提供的查询规范化之外,该代理还会混淆所有查询,以确保敏感数据不会进入指标标签。

链接