Skip to main content
告警规则可以携带一组调查入口(Investigation entries)。每个入口是一个预配置的跳转目标:打开某个仪表盘,或用查询工作台打开一份已经写好、并被告警标签渲染过的初始查询。值班人员从一条告警出发就能直接看到该看的图或该查的数据,不必再手写查询。 入口配置在告警规则表单的第 6 个区块「调查入口」,随规则一起保存;入口只在告警事件产生的那一刻渲染成快照并随事件下发,之后规则再改也不会影响已经接受的告警。
保存调查入口需要 monit-edge v0.75.3 或以上版本。保存时会检查该规则匹配到的数据源所在集群内所有活跃实例:只要有实例低于 v0.75.3,保存即被拒绝。详见保存时的 Edge 版本要求。

工作方式

一个告警规则可以保存多个调查入口。每条入口包含三部分:入口类型(仪表盘或查询)、该类型的配置、以及一个相对于告警事件时间的时间窗口。
  • 入口是弱导航引用。 保存配置和渲染快照都不会执行查询,也不会读取仪表盘内容;入口不参与告警判定、告警身份、实例身份或生命周期,也不触发任何自动调查任务。
  • 入口跟随事件的数据源。 一条规则可以按数据源类型与名称通配匹配多个数据源,但每个告警事件只来自其中一个。查询入口默认在事件自己的数据源上执行,因此跳过去看到的是触发告警的那个数据源,而不是某个固定或默认数据源;也可以显式指定其他数据源(例如用日志数据源做下钻)。
  • 渲染发生在告警入库时。 monit-webapi 在接受事件时,用最终事件时间、事件的原始数据标签和事件数据源,把规则上当时配置的入口渲染成一份快照(Investigation Context),随事件一并保存与投递。活跃告警详情抽屉里的调查入口区块、故障详情综合信息面板里的排查入口区块(见故障详情)、以及 AI SRE 读的都是这同一份快照。
  • 入口名在两边叫法不同:Monitors 里这一块叫调查入口,故障详情里叫排查入口,两者都是同一份事件快照。
  • 顺序只影响展示。 入口可以拖动排序,但第一项没有默认、主要或推荐语义;顺序不进入告警执行或生命周期。

入口类型

两类入口都不支持 Runbook、工单或任意 URL。

添加与编辑入口

菜单入口:配置告警规则的表单 → 区块 6「调查入口」。
  1. 点击 添加仪表盘入口 或 添加查询入口,打开入口编辑弹窗。弹窗标题会区分是新增还是编辑(添加仪表盘入口 / 编辑仪表盘入口 / 添加查询入口 / 编辑查询入口)。
  2. 填写调查用途和时间范围(两类入口通用),再填写该类型的字段(见下文)。
  3. 点击 确认,入口加入规则表单。确认只把入口加入表单,要保存规则后才生效。
  4. 规则列表上每条入口右侧有三个操作:预览跳转(眼睛图标)、编辑(铅笔图标)、删除(垃圾桶图标)。查看已保存规则的详情时,编辑按钮变成 详情,弹窗底部只有 关闭。
已添加的入口以列表展示:拖动最左侧的拖拽手柄可以调整顺序,列表标题取调查用途;没有写用途时,仪表盘入口显示仪表盘标题(读不到时显示仪表盘 ID),查询入口显示查询语句。 入口数量上限为 20 个:达到 20 个后两个添加按钮变为禁用,并在旁边提示 最多 20 个调查入口(详见校验与限制)。

通用字段

时间范围的语义:
  • 锚点是告警事件时间:开始时间 = 事件时间 − 告警前时长,结束时间 = 事件时间 + 告警后时长。
  • 窗口完全按您配置的值写进快照,之后无论什么时候打开都不会随当前时间漂移;进入仪表盘或工作台后可以临时调整时间范围,但页面里的调整不会回写规则或已产生的快照。
  • 允许结束时间晚于当前时刻(配置了告警后时长的入口会这样),告警一产生就能打开,不等待后续数据。
  • 系统不推导、不提示、也不校验告警的计算窗口是否被覆盖。

仪表盘入口的字段

定位到的失效处理:如果定位对象在仪表盘里已不存在(被删除或改名),字段会提示 已不存在的对象(<id>),下方同时给出警告 定位对象在仪表盘中已不存在,将打开仪表盘默认页签——跳过去时打开仪表盘默认页签,不会失败。仪表盘本身加载失败(已删除或您无权查看)时,字段区显示 仪表盘加载失败,可能已被删除或您无权查看,此时定位到不可选。 变量取值的规则:
  • 仪表盘没有变量时显示 该仪表盘没有变量。
  • 变量取值统一按 Go template 渲染,可用变量见模板变量。数据源类变量会标注 (数据源),占位提示为 {{ $datasource.id }};普通变量的占位提示为 留空使用仪表盘默认值,例如 {{ $labels.<变量名> }}。
  • 留空 = 未配置,仪表盘按自己的规则取默认值;配置了但渲染失败或渲染为空 = 保持 unresolved(不会回退默认值),并在入口上显示错误。
  • 已配置、但仪表盘里已经不存在(或改名)的变量仍会列出来并标记 仪表盘中已不存在,方便您清理;否则它会影响仪表盘的变量解析而您看不到。
  • 变量的删除、改名、类型变化或候选失效不会反向更新规则。

查询入口的字段

选择了事件数据源时,规则类型不是工作台支持的类型会显示 请先在「数据源与查询」中选择数据源类型,或为该入口指定数据源;指定的数据源已被删除或您无权使用时会显示 所选数据源不可用。数据源的真实类型、权限与专属限制由工作台在打开或执行时按当前用户重新校验。

模板变量

调查入口的模板上下文只有两个变量:
  • 简单标签直接取值:{{ $labels.service }}。标签名含点等特殊字符时用 {{ index $labels "service.name" }}。
  • 访问缺失的标签或 $datasource 不存在的键会明确报错(index 访问同理),不会静默产出空字符串——否则会变成一次没有过滤条件的查询。
  • 点号(.)只表示 range / with 等局部数据上下文,不代表完整告警事件;$values、$value、$annotations、$appendLabels 等备注描述里可用的变量在这里都不可用,也不能通过根对象绕过。
  • 支持 Go template 的条件、循环、局部变量与内置函数;只渲染一次,模板渲染结果里的 {{ }} 不会被再次执行。
仪表盘变量示例:
查询语句示例(VictoriaLogs):
查询表达式自己负责引号与转义。 模板只产出值本身,service:="{{ ... }}" 里的引号是 LogsQL 语法的一部分,必须由表达式自己写。需要转义时请显式使用有固定语义的函数,例如 replace(字面量替换)、regexQuoteMeta(正则元字符)、urlquery / html / js;系统不按数据源方言自动判断转义方式。渲染失败或渲染结果不满足查询载荷要求时,该入口保留初始模板与错误,不生成可执行查询、也不执行。

预览跳转

点击入口右侧的眼睛图标打开 预览调查入口 弹窗,它按真实事件的快照渲染这个入口,用来在保存前确认跳转是否符合预期。
  • 前置条件:规则必须已经保存(否则提示 请先保存规则,产生告警后再预览),并且该规则当前有活跃告警(否则提示 该规则暂无活跃告警,产生告警后可预览)。弹窗顶部从该规则的活跃告警里选一条作样本,超过 20 条时可以翻页。
  • 预览用的是所选告警的事件快照,不包含表单里尚未保存的修改;因此要先保存规则、等它产生告警,才能预览新改的配置。
  • 弹窗里点入口再打开目标(新页签)。如果这条告警没有与该入口对应的快照,会提示 该告警中没有与此入口对应的快照,请选择配置生效后产生的告警;整条告警都没有快照时提示 该告警没有调查入口快照,请选择配置生效后产生的告警。

校验与限制

去重的身份判定:
  • 仪表盘入口:同一仪表盘 + 同一定位对象即为重复,与变量取值、时间范围无关。重复项不能用来表达变量 fallback 或多实例。
  • 查询入口:按标准化后的数据源、查询(模式、表达式、参数、最小 step)与时间范围判重;未指定数据源(使用事件数据源)作为独立取值参与比较。同一数据源上可以配置多份不同的查询。
这些校验同时在两个地方执行:入口弹窗里(只校验当前这一项,方便逐项修复),以及保存规则时(整组校验,错误文案显示在区块下方)。接口侧还会校验仪表盘 ID 与定位对象必须是规范的 UUIDv7、变量名合法、模板语法可解析,以及未知字段会被拒绝。

保存时的 Edge 版本要求

调查入口需要 monit-edge v0.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 变量,与调查入口的上下文不同。

告警规则入门

告警规则表单六个区块的整体说明。