为什么每次让AI帮忙写几条Prometheus告警,得到的规则不是敏感到每个毛刺都触发通知,就是宽松到真正宕机了还静悄悄,而且经常连基本的服务标签或排障手册链接都漏掉?更头疼的是,随手丢一句“给我写个CPU高负载告警”,模型输出的指标名大概率是编的,评估窗口也完全不考虑抖动。这种质量,谁敢直接往生产里放?有人坚持认为,只要把提示词打磨得足够精确,AI就能变成最可靠的告警工程师;反对的声音同样坚定——模型生成的东西永远需要人肉三重校验,否则就是给On-call埋雷。

先看那些在实践中尝到甜头的做法。如果抛弃“随手写一句”的玩法,改用一套结构化的提示模板,AI的能力完全不一样。一个好的提示会强制模型锚定生产现实:它必须使用真正可采集的Prometheus指标,并选用rate()、avg_over_time或histogram_quantile()这样能平滑毛刺的函数,而不是给一个赤裸裸的瞬时阈值。同时,模板会要求模型指定合理的“for”持续时间——既能过滤掉短暂抖动,又不至于延误真实故障。更重要的是,每一组生成的规则都被要求贴上severity、team、service这类路由标签,并在annotations里链接到对应的runbook。有些模板甚至多做一步:让模型自己列出这个告警可能被什么场景误触发,做一轮假阳性分析。有了这些约束,模型不再凭空编造,而是在你圈定的安全区内产出。

从几个高频场景里就能看出差别。比如要让AI生成一组错误率告警,你不需要自己去翻指标名,只要告诉它:“当每个服务的5分钟错误率超过1%且持续至少10分钟时告警。”模型会拼出sum by (service) (rate(http_requests_total{status=~"5.."}[5m])) / sum by (service) (rate(http_requests_total[5m])) > 0.01,并配上for: 10m。如果换成面向SLO的延迟监控,给它“p99延迟超过SLO阈值0.8秒并持续10分钟”,它就会写histogram_quantile(0.99, sum by (le, service)(rate(http_request_duration_seconds_bucket[5m]))) > 0.8,同样加上合理的持续时间。最精彩的是饱和度预测:让AI监控磁盘是否会在4小时内用尽,它会用predict_linear(node_filesystem_avail_bytes{mountpoint="/"}[6h], 4*3600) < 0,并保持30分钟的触发窗口。这个predict_linear的思路尤其巧妙——它并不是等到磁盘100%才报警,而是基于最近6小时的使用趋势线性外推,提前预警,让你在空间耗尽前动手。

但反方的谨慎也并非多余。如果你只是用那种最原始的提示,比如“写一个高CPU的Prometheus告警”,你几乎一定会收到一个充满缺陷的产物。模型可能会输出cpu_usage > 80这样的表达式,而cpu_usage并非真实的Prometheus指标;而且即使用对了metric,也大概率缺少rate()窗口,导致面对定时任务等周期性负载时上下翻飞。另外,像for: 5m这样的设置,对真正的生产抖动几乎没有免疫力。这些问题的根源在于,模型默认的知识里混入了大量“看起来像”但细节全错的片段,如果没有强大的提示把上下文固定住,生成的内容就像在沙子上盖房子。更重要的一个警示是:无论如何,AI生成的告警规则决不能直接推到生产环境。哪怕是最严谨的模板,也可能在边界条件上翻车,或者因为实际指标命名惯例不同而引入错误。

所以真正的判断其实不是“用还是不用”,而是“怎么用”。把AI当成一个起草助手,而不是一键发布的自动化工具,这个定位才踏实。先用精心设计的提示模板让模型吐出初稿,然后严格执行验证流程:用promtool check rules检查语法和逻辑,把规则部署到staging环境里的Prometheus安静观察至少24小时,甚至用promtool test rules回放近期的历史数据,看看这条告警在过去的真实事故中会不会如预期般触发。如果模板里还要求了runbook链接,不妨在生成告警的同一个对话里接着让AI把对应排障手册也写出来——“接到这个告警后,先查什么?常见的根因有哪些?回滚步骤是什么?”5分钟就能把告警和操作手册配对,虽然两份内容都需要人工审核,但空白的页面已经没有了。配套的资源里,除了告警规则生成提示,还可以准备Grafana仪表板查询构建提示和事件事后分析提示,让整个可观测性工作流的起点不再靠人堆砌。

在AI生成告警这件事上,乐观与悲观都有足够的理由,但真正站得住脚的做法是冷静地拆解:用结构化的提示画好边界,让模型在框内尽情发挥,再用一套任何人都无法绕过的验证关卡守住底线。这样,AI才不再是那个让你又爱又怕的“告警测试员”,而是一个能实实在在减少重复劳动的帮手。