pg_ash 通过 pg_cron 每秒采样一次 pg_stat_activity,将编码后的快照存储在分区表中,并提供 32 个 SQL 函数用于等待事件分析。
纯 SQL + PL/pgSQL 实现。无需 C 扩展、无需 shared_preload_libraries、无需重启。可在任何 pg_cron 运行的环境中使用——托管云服务商(RDS、Cloud SQL、AlloyDB、Azure Database for PostgreSQL、Supabase 等)、自建环境、Kubernetes 或任何其他部署方式。
存储:每个采样约 100-200 字节,基于 TRUNCATE 的分区轮转每天约 30 MiB(零膨胀)。
分析函数包括:热门等待事件、按查询的等待概况、等待事件下钻、时间范围分析和时间线可视化。这些函数设计为可以自然串联使用,支持迭代式根因分析——无论是在 psql 中由人工操作,还是通过 AI 工具(如 Claude Code、OpenCode 或 Codex)进行分析。
支持 PostgreSQL 14-18。Apache 2.0 许可证。已通过 CI 测试。
https://github.com/NikolayS/pg_ash (https://github.com/NikolayS/pg_ash)