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