测试触发
手动触发一条规则,在上线前检查查询、标签和渲染出来的通知。
这页办完你会得到:在规则表单上按一个按钮,拿到一份六阶段的报告——查询通不通、事件长什么样、 会不会被屏蔽规则吞掉、消息到底有没有送到人手上。不用干等指标出问题。
跑一次
模拟触发按钮在告警规则表单底部,紧挨着保存。规则不需要先保存, 测试跑的就是表单里当前这份配置。

弹窗里问四件事:
| 字段 | 作用 |
|---|---|
| 模拟级别 | 按哪个级别合成事件。只配了一个级别的规则会自动填好并说明;配了多档阈值的会问你要模拟哪一档 |
| 事件类型 | 触发或恢复。选恢复时,如果规则关掉了「恢复时通知」,会明确提示 |
| 样本数据 | Prometheus 规则可以选一个数据源,让它真跑一次查询、取第一条真实序列。其他类型自动取样。查询无数据时用内置模拟值 |
| 干跑 | 勾上:各环节照常判定,但一条消息都不发。不勾:真的给规则上配的真实接收人发通知,标题带 [TEST] 前缀 |
第一次跑就把干跑勾上。只有确实要验证「消息能到手机」时才取消勾选。
点开始测试。预期结果:竖着列出六个阶段,每个带一个状态标签——通过、注意、失败或跳过。
六个阶段各查什么
| 阶段 | 实际做了什么 |
|---|---|
| 查询与条件检测 | 真的执行规则里的查询。每条报告返回了多少条序列、最新值是多少。判定条件会依次查引用是否存在、语法对不对,然后用真实数据实算一遍 |
| 合成事件 | 用取到的样本序列合成一条事件,附加信息和规则名都过一遍模板渲染。模板写错了在这里暴露 |
| 生效检查 | 和引擎一致的前置判断:规则启用了吗、当前时间在生效窗口内吗、事件对应的机器还在吗、业务组对得上吗 |
| 事件处理 | 规则上挂的流水线按顺序真的跑一遍。被流水线丢弃的话,报告到此为止 |
| 屏蔽检查 | 匹配屏蔽规则。命中只给一条警示,不打断测试,好让你继续验证通知配置 |
| 通知发送 | 逐条匹配事件上的通知规则;不是干跑的话,消息是真发出去的 |
报告底部的合成事件详情可以展开,里面是完整的合成事件:标签、附加信息、现场值—— 通知模板能看到的东西全在里面。
它动了什么、没动什么
取消「干跑」之前先读这一段。
它不会:
- 把事件写进数据库——合成事件没有 id,活跃事件和历史事件列表里都看不到;
- 走真实的事件队列,所以不触发回调、不触发告警自愈、不发全局 webhook;
- 写通知记录。
它会:
- 真的对真实数据源执行查询;
- 真的执行事件处理流水线——处理器里如果调了外部系统,那就是真调;
- 不勾干跑时,真的给真实接收人发通知。消息带
[TEST]前缀,收信方能分辨的也就只有这个前缀。
同一个用户在同一个业务组下,10 秒只能测一次。
失败了怎么读
哪个阶段变红就看哪里,说明栏通常直接写清了问题:
- 查询有效,但当前无数据——规则的查询没返回你以为的东西。这是最常见的结果, 它不是测试失败,是查询该改了。
- 引用的查询 A 不存在 / 表达式语法错误——判定条件引用了不存在的查询别名,或者压根解析不了。 真实引擎遇到解析不了的表达式会静默判为不满足,正因如此才值得在这里抓出来。
- 规则处于禁用状态、当前时间不在规则生效时段内——就这份配置而言, 指标怎么抖它都不会产生事件。
- 命中屏蔽规则「X」——屏蔽规则自己的说明会告诉你它是连事件一起屏蔽,还是只屏蔽通知。
- 未配置任何通知规则——事件会触发,但没人会知道。
查询阶段有两个前提要注意。匹配到多个数据源的规则,只检测第一个——真实告警是对每个数据源 分别评估的。用了变量的查询会被跳过,因为检测展不开变量。
通过之后
模拟触发证明的是配置自洽,不是阈值合理。阈值合不合理,得存下规则、让它真的评估一段时间, 再去读判定执行记录,看查询逐周期返回了什么。