正在打开每日关注
正在打开每日关注
用单一静态二进制生成可追踪、可供 Agent 消费的 PostgreSQL 健康诊断。
是什么 pgbot 是 pgrundev 发布的 beta 级 PostgreSQL 诊断工具,使用 Go 编写并以单一静态二进制运行。它以只读账号连接数据库,读取 PostgreSQL 自身的统计视图,输出 findings-first 健康报告、健康分数以及相对本地基线的变化。
架构与核心设计 核心判断由 Go 与 SQL 确定性计算,AI 只负责解释既有 findings,不负责生成诊断结论。CLI 同时提供文本、版本化 JSON、SARIF、JUnit 和 Prometheus 输出,并通过 MCP 暴露同一套结果给 Agent。安全上依赖 pg_monitor 只读角色,并叠加只读事务、statement_timeout、lock_timeout 等会话保护;每次运行写入本地 baseline,支持 diff 与 why。
值得借鉴的亮点 它把数据库诊断拆成事实采集、结构化契约和自然语言解释三层,既方便脚本与 Agent 消费,也保留人类可读报告。报告不仅列出 CRITICAL、WARNING,还列出已验证的 GOOD 状态;索引分析还明确提醒主库与副本之间的使用差异,避免把“未扫描”直接误判成可删除。
边界与风险 pgbot 是点状诊断工具,不替代具备告警、长期留存和多主机汇总能力的监控平台。JSON 契约虽已版本化,但项目仍处于 beta;PostgreSQL 14–15 主要是 best-effort,queries 依赖 pg_stat_statements,advise 还要求 PostgreSQL 16+ 与 HypoPG。生产接入时应重点验证权限、基线存储位置和输出契约的升级策略。