工作方式
一个告警规则可以保存多个调查入口。每条入口包含三部分:入口类型(仪表盘或查询)、该类型的配置、以及一个相对于告警事件时间的时间窗口。- 入口是弱导航引用。 保存配置和渲染快照都不会执行查询,也不会读取仪表盘内容;入口不参与告警判定、告警身份、实例身份或生命周期,也不触发任何自动调查任务。
- 入口跟随事件的数据源。 一条规则可以按数据源类型与名称通配匹配多个数据源,但每个告警事件只来自其中一个。查询入口默认在事件自己的数据源上执行,因此跳过去看到的是触发告警的那个数据源,而不是某个固定或默认数据源;也可以显式指定其他数据源(例如用日志数据源做下钻)。
- 渲染发生在告警入库时。 monit-webapi 在接受事件时,用最终事件时间、事件的原始数据标签和事件数据源,把规则上当时配置的入口渲染成一份快照(Investigation Context),随事件一并保存与投递。活跃告警详情抽屉里的调查入口区块、故障详情综合信息面板里的排查入口区块(见故障详情)、以及 AI SRE 读的都是这同一份快照。
- 入口名在两边叫法不同:Monitors 里这一块叫调查入口,故障详情里叫排查入口,两者都是同一份事件快照。
- 顺序只影响展示。 入口可以拖动排序,但第一项没有默认、主要或推荐语义;顺序不进入告警执行或生命周期。
入口类型
两类入口都不支持 Runbook、工单或任意 URL。
添加与编辑入口
菜单入口:配置告警规则的表单 → 区块 6「调查入口」。- 点击 添加仪表盘入口 或 添加查询入口,打开入口编辑弹窗。弹窗标题会区分是新增还是编辑(添加仪表盘入口 / 编辑仪表盘入口 / 添加查询入口 / 编辑查询入口)。
- 填写调查用途和时间范围(两类入口通用),再填写该类型的字段(见下文)。
- 点击 确认,入口加入规则表单。确认只把入口加入表单,要保存规则后才生效。
- 规则列表上每条入口右侧有三个操作:预览跳转(眼睛图标)、编辑(铅笔图标)、删除(垃圾桶图标)。查看已保存规则的详情时,编辑按钮变成 详情,弹窗底部只有 关闭。
最多 20 个调查入口(详见校验与限制)。
通用字段
时间范围的语义:
- 锚点是告警事件时间:开始时间 = 事件时间 − 告警前时长,结束时间 = 事件时间 + 告警后时长。
- 窗口完全按您配置的值写进快照,之后无论什么时候打开都不会随当前时间漂移;进入仪表盘或工作台后可以临时调整时间范围,但页面里的调整不会回写规则或已产生的快照。
- 允许结束时间晚于当前时刻(配置了告警后时长的入口会这样),告警一产生就能打开,不等待后续数据。
- 系统不推导、不提示、也不校验告警的计算窗口是否被覆盖。
仪表盘入口的字段
定位到的失效处理:如果定位对象在仪表盘里已不存在(被删除或改名),字段会提示
已不存在的对象(<id>),下方同时给出警告 定位对象在仪表盘中已不存在,将打开仪表盘默认页签——跳过去时打开仪表盘默认页签,不会失败。仪表盘本身加载失败(已删除或您无权查看)时,字段区显示 仪表盘加载失败,可能已被删除或您无权查看,此时定位到不可选。
变量取值的规则:
- 仪表盘没有变量时显示
该仪表盘没有变量。 - 变量取值统一按 Go template 渲染,可用变量见模板变量。数据源类变量会标注
(数据源),占位提示为{{ $datasource.id }};普通变量的占位提示为留空使用仪表盘默认值,例如 {{ $labels.<变量名> }}。 - 留空 = 未配置,仪表盘按自己的规则取默认值;配置了但渲染失败或渲染为空 = 保持 unresolved(不会回退默认值),并在入口上显示错误。
- 已配置、但仪表盘里已经不存在(或改名)的变量仍会列出来并标记
仪表盘中已不存在,方便您清理;否则它会影响仪表盘的变量解析而您看不到。 - 变量的删除、改名、类型变化或候选失效不会反向更新规则。
查询入口的字段
选择了事件数据源时,规则类型不是工作台支持的类型会显示
请先在「数据源与查询」中选择数据源类型,或为该入口指定数据源;指定的数据源已被删除或您无权使用时会显示 所选数据源不可用。数据源的真实类型、权限与专属限制由工作台在打开或执行时按当前用户重新校验。
模板变量
调查入口的模板上下文只有两个变量:- 简单标签直接取值:
{{ $labels.service }}。标签名含点等特殊字符时用{{ index $labels "service.name" }}。 - 访问缺失的标签或
$datasource不存在的键会明确报错(index访问同理),不会静默产出空字符串——否则会变成一次没有过滤条件的查询。 - 点号(
.)只表示range/with等局部数据上下文,不代表完整告警事件;$values、$value、$annotations、$appendLabels等备注描述里可用的变量在这里都不可用,也不能通过根对象绕过。 - 支持 Go template 的条件、循环、局部变量与内置函数;只渲染一次,模板渲染结果里的
{{ }}不会被再次执行。
service:="{{ ... }}" 里的引号是 LogsQL 语法的一部分,必须由表达式自己写。需要转义时请显式使用有固定语义的函数,例如 replace(字面量替换)、regexQuoteMeta(正则元字符)、urlquery / html / js;系统不按数据源方言自动判断转义方式。渲染失败或渲染结果不满足查询载荷要求时,该入口保留初始模板与错误,不生成可执行查询、也不执行。
预览跳转
点击入口右侧的眼睛图标打开 预览调查入口 弹窗,它按真实事件的快照渲染这个入口,用来在保存前确认跳转是否符合预期。- 前置条件:规则必须已经保存(否则提示
请先保存规则,产生告警后再预览),并且该规则当前有活跃告警(否则提示该规则暂无活跃告警,产生告警后可预览)。弹窗顶部从该规则的活跃告警里选一条作样本,超过 20 条时可以翻页。 - 预览用的是所选告警的事件快照,不包含表单里尚未保存的修改;因此要先保存规则、等它产生告警,才能预览新改的配置。
- 弹窗里点入口再打开目标(新页签)。如果这条告警没有与该入口对应的快照,会提示
该告警中没有与此入口对应的快照,请选择配置生效后产生的告警;整条告警都没有快照时提示该告警没有调查入口快照,请选择配置生效后产生的告警。
校验与限制
去重的身份判定:
- 仪表盘入口:同一仪表盘 + 同一定位对象即为重复,与变量取值、时间范围无关。重复项不能用来表达变量 fallback 或多实例。
- 查询入口:按标准化后的数据源、查询(模式、表达式、参数、最小 step)与时间范围判重;未指定数据源(使用事件数据源)作为独立取值参与比较。同一数据源上可以配置多份不同的查询。
保存时的 Edge 版本要求
调查入口需要 monit-edgev0.75.3 或以上版本。为了引导升级,版本门控放在保存时,事件处理时不检查版本:
- 触发条件:保存后的规则带有非空入口,并且本次请求显式提交了非空入口,或者在保留原有入口的同时修改了数据源范围(数据源类型、名称通配或精确绑定)。未配置入口、显式传空数组、以及只改其他字段的请求都不检查。
- 检查范围:解析该规则当前匹配的全部数据源,取其所在 Edge 集群的活跃实例。没有任何活跃实例的数据源会被跳过;规则当前没有匹配到任何数据源时直接允许保存。
- 通过条件:所有被检查实例的版本 ≥
v0.75.3。版本无法识别视为不满足。 - 拒绝行为:不保存任何字段,返回明确的升级错误并列出最低版本,以及不满足的数据源、Edge 集群、实例 IP 与版本(数量有界)。错误信息形如:
investigation_targets require monit-edge v0.75.3 or later on every active instance serving the rule's datasources; upgrade cluster "<集群名>" <实例 IP>:<端口> (v0.75.2)。 - 该门控覆盖全部写入口:创建、更新、可修改入口或数据源范围的批量字段更新,以及原生 Bundle 与历史 JSON 导入;外部格式(Prometheus、Nightingale 等)导入的规则入口固定为空数组,不受影响。
- 保存之后再出现低版本实例、或 Edge 降级,都不会影响已保存的规则;之后再提交入口或修改数据源范围时才会重新检查。
快照语义与失败处理
入口来自事件快照,不来自规则当前配置。 告警被接受时渲染一次,之后:- 规则改了入口,已经接受的告警(活跃告警详情、故障详情里的排查入口区块)显示的仍是老快照;
- 重复通知或终态事件沿用同一份快照,只把每个入口的窗口按事件时间差整体平移,不重新读取规则;
- 规则被删除也不会移除历史快照——故障侧会显示
告警规则已被删除,无法生成排查入口。
该告警没有调查入口快照,请选择配置生效后产生的告警。请用配置生效后新产生的告警验证。
整条事件渲染失败时不生成快照,改为携带一个有界错误码:
单项渲染失败不丢弃入口:仪表盘变量渲染失败时,该变量保留为未解析并显示
变量 <名称> 渲染失败:<原因>;查询语句渲染失败时,该入口不会生成可执行查询、不会执行,并显示 查询渲染失败,未执行:<原因>。这类入口仍然列出来,但带一个红色的 入口异常 标记,也不给跳转链接。其余入口照常工作。
权限在目的端重新校验。 快照的可见性跟随告警事件本身,生成时不按仪表盘分组或数据源权限过滤;真正打开仪表盘或工作台时按当前用户重新校验,无权或已删除的目标沿用目的端的报错,不会回退到其他资源。
投递到 On-call 的快照另有 8 KiB 上限。 完整快照随告警事件以 __alert_rule_investigation_context 标签投递,标签值超过 8 KiB 时整体降级为 payload_limit(故障详情显示提示文案,不截断),此时完整的快照仍可在 Monitors 的活跃告警详情中查看。
相关页面
活跃告警
活跃告警详情抽屉里的调查入口区块,按事件快照展示入口。
故障详情 · 排查入口
故障综合信息面板里的排查入口区块如何渲染快照。
备注描述
告警事件备注里的 Go Template 变量,与调查入口的上下文不同。
告警规则入门
告警规则表单六个区块的整体说明。