用途:校验、lint、审计或修复 PromQL 查询及告警规则,检测常见反模式并给出优化建议,同时把查询翻译成通俗说明。
主要能力:分四层检查——语法有效性、语义合理性(如 rate() 只用于 counter 而非 gauge)、性能与反模式(高基数、正则滥用、缺少 rate()、对 gauge 使用 rate()、对分位数求平均、过长 range 的 irate()、过度子查询等),并能逐条解释查询含义、输出标签与结果结构。
使用方式:在仓库根目录运行 python3 devops-skills-plugin/skills/promql-validator/scripts/validate_syntax.py "<query>" 做语法校验,再运行 python3 devops-skills-plugin/skills/promql-validator/scripts/check_best_practices.py "<query>" 做最佳实践与性能检查;两个脚本均输出 JSON。工作流会先给结果再暂停,向用户确认监控目标、指标类型、时间窗口、聚合维度与用途后,再继续比对意图与实现并给出优化。引用示例时使用文件路径加行号。
适用场景:监控搭建时校验告警规则、排查慢查询、对 recording rules 做代码审查,或作为教学工具。
限制:指标类型靠命名约定启发式推断,自定义命名可能误判;高基数告警对合理使用全量查询或 recording rules 的场景可能误报;脚本无运行时上下文,无法确认指标是否存在或标签值是否有效,生产校验建议对照真实 Prometheus 实例。