Coroot 团队很高兴地宣布 coroot-pg-agent 的发布——一个开源 (Apache 2.0) 的 Postgres Prometheus 导出器,专注于查询性能统计。
在 Coroot,我们致力于开发一款产品,用于检测服务中断的根本原因,并为用户提供一系列可能的修复方案。
最初,我们计划使用现有的开源 Prometheus 导出器收集的指标,例如 postgres_exporter (Github 上有 1.7k 星)。不幸的是,我们意识到它收集的指标对于识别最常见的性能问题是无用的,例如:
对 postgres_exporter 的提议更改将过于庞大,因此我们决定构建另一个导出器。
全面的查询指标
该代理聚合了来自 pg_stat_statements 和 pg_stat_activity 的统计信息,不仅考虑已完成的查询,还考虑仍在执行的查询。
锁监控
仅仅收集 pg_locks 中的活动锁数量是不够的。DBA 真正想知道的是哪个查询正在阻塞其他查询。收集到的指标可以提供这个问题的答案。
查询规范化和混淆
除了 Postgres 本身提供的查询规范化之外,该代理还会混淆所有查询,以确保敏感数据不会进入指标标签。