活跃告警
夜莺 v9 活跃告警页面,集中查看当前未恢复的告警事件、按业务组/级别/数据源过滤、认领屏蔽删除处置,以及通过聚合规则归类大批量告警。
概述
活跃告警 = 当前仍在告警状态、还没恢复的事件集合。
侧栏路径:告警 → 告警事件 → 活跃告警 Tab,URL /alert-cur-events。同一页面顶部有 活跃告警 / 历史告警 两个 Tab:
- 活跃告警:状态 =
Triggered且未恢复的事件,告警一旦恢复就从这里消失,转到历史告警。 - 历史告警:所有产生过的告警事件(含已恢复的),用于事后回溯。
适用场景:
- 值班同学第一时间看"现在到底有哪些故障在烧"
- 大批量告警时按业务组/级别/数据源快速收敛
- 标签维度做聚合(比如按业务组、按主机 ident),看故障"成片爆发"的全貌
- 处置流程:查看详情 → 认领 → (必要时)屏蔽相关派生告警 → 通知协作
活跃告警只展示尚未恢复的事件。如果某条规则的告警恢复了,它就不在这个列表里;想看历史得切到 历史告警 Tab。
列表页

顶部过滤栏
- 我的业务组 / 全部业务组:单选切换;“我的业务组” 只显示当前账号所属的业务组事件。
- 业务组下拉:在选定范围内进一步选某一个具体业务组。
- 模糊搜索:在事件规则名 + 标签中搜,多个关键词用空格分隔(与逻辑)。比如输入
disk dev-doris-001会同时匹配规则名含 disk 且标签含 dev-doris-001 的事件。双击列表里的标签也会把这个标签作为关键字加入搜索。 - 自动刷新:右上
Off / 5s / 15s / 30s / 1min / 5min,值班大屏建议开 30s。 - 时间范围:默认不限(显示所有未恢复事件,包括几十天前就在烧的"老炮")。可以设最近 1 小时之类来只看新爆发的。
左侧过滤面板
| 分类 | 选项 | 说明 |
|---|---|---|
| 监控类型 | Metric / Host / Log | 即告警规则的 prod 字段;指标类、主机类、日志类 |
| 告警级别 | S1 (Critical) / S2 (Warning) / S3 (Info) | 多选 |
| 数据源 | 当前实例所有启用的数据源 | 多选,支持搜索 |
列表字段
| 列 | 含义 |
|---|---|
| 事件 | 第一行:数据源类型 logo + 数据源名 + 规则名(点击打开详情抽屉);第二行:事件标签的可视化展示 |
| 触发时间 | 本次告警状态最近一次被检测到的时间 |
| 持续时长 | 从「首次触发」到现在的时长,配有 12 格彩条 — 越靠右、颜色越红表示持续越久(0-8h 绿、8-16h 黄、16-24h+ 红) |
| 认领人 | 未认领 / 显示认领人;点击「认领」按钮自己接单 |
| 操作 | 行末三点菜单:屏蔽 / 删除 / 认领 / 取消认领 |
列表底部支持翻页和"30/50/100 条/页"切换。
聚合规则:把上百条告警折成几张卡片
当活跃告警 > 50 条时,平铺式列表很难看出"哪一类问题最多"。聚合规则 用 Go Template 对事件做归类,把同一类事件折叠成一张卡片显示在表格上方。

如上图,选择"By RuleName" 后,24 条事件被归为 11 个聚合结果:tes1 下 5 条、主机失联告警 下 4 条……点击任一卡片,下方表格只显示该卡片对应的事件。
常用聚合表达式(在「新增规则」里填):
| 场景 | 模板 |
|---|---|
| 按业务组 + 级别 | Group:{{.GroupName}} Severity:{{.Severity}} |
| 按规则名 | {{.RuleName}} |
| 按主机 ident | {{.TagsMap.instance}} 或 {{.TagsMap.ident}} |
| 按服务标签 | {{.TagsMap.service}} |
可用字段(常用):.GroupName(业务组)、.RuleName(规则名)、.Severity(级别数字)、.TagsMap.<key>(任意标签值)。
不熟悉 Go Template 也可以用「新增规则」按钮里给的几个内置例子,选中后再改改。
批量操作
勾选列表行后会在列表上方出现批量操作按钮:

- 批量删除(OSS + PLUS)
- 批量认领 / 批量取消认领(PLUS 独有)
适合"一次性把同一规则下的几十条派生事件全部认领"或"把彻底无效的僵尸事件一次性清掉"。
详情抽屉
点击事件标题(蓝色链接)会从右侧滑出告警详情抽屉:

详情字段
| 字段 | 说明 |
|---|---|
| 趋势图 | 顶部曲线,显示告警指标在触发前后一段时间的实际取值;红色虚线 = 触发时刻;右上可调时间范围与 Step |
| 规则标题 | 点击跳转到对应告警规则编辑页 /alert-rules/edit/:id |
| Hash | 事件唯一指纹(基于规则 + 标签生成),用于排查重复告警时直接复制比对 |
| 业务组 | 事件所属业务组 |
| 规则备注 | 告警规则在创建时填的备注(“为什么这条规则在告警”) |
| 数据源 | 触发该事件的数据源实例名 |
| 告警级别 | S1 / S2 / S3 |
| 事件状态 | Triggered(活跃)或 Recovered(恢复,仅历史告警可见) |
| 事件标签 | 触发时刻该数据点附带的全部标签 key=value |
| 首次触发时间 / 本次检测时间 | 第一次进入告警状态的时间 vs 最近一次确认仍在告警的时间 |
| 触发时值 | 触发瞬间的指标数值 |
| PromQL(或对应数据源的查询语句) | 告警规则用到的查询语句,旁边的 ▶️ 按钮可直接在数据源里执行复算 |
| 执行频率 / 持续时长 | 规则的查询周期;触发前要满足条件的持续时长 |
| 通知规则 / 通知记录 | 命中的通知规则;“查看详情"可以看到这条事件被推送到了哪些媒介、是否成功 |
处置按钮
抽屉底部 4 个操作按钮:
- 屏蔽:用当前事件的标签预填屏蔽规则表单,跳转到
/alert-mutes/add,常用来快速压制成片爆发的派生告警(比如某台机器宕机引发的 N 条派生事件)。 - 删除:物理删除当前事件。
⚠️ 只有在确定该指标永远不会再上报(标签调整 / 机器下线)时才删 — 这种事件不会自动恢复,留着也是噪音。其余情况让它自然恢复即可。
- 认领(PLUS):把事件挂到自己名下,列表的"认领人"列会显示当前用户。值班场景用于"我接手了,别人不用重复处理”。
- 生成分享链接:生成一个免登录可访问的事件详情链接(带 token,默认 7 天有效),发到 IM 群里给协作方查看;链接是只读快照,看到的是生成时刻的事件状态。
常见问题
Q1:为什么列表里的告警明明已经恢复了,还是显示在活跃告警里?
A:活跃告警基于告警引擎判定是否恢复而非"采集数据是否还在异常"。两种最常见的原因:
- 指标已经停止上报(机器关机 / 标签被改):告警引擎查询不到数据,没法判定"恢复",会停在 Triggered 状态。这种情况手工 删除事件 即可,或者新增主机失联告警规则覆盖该场景。
- 规则配置了"通知恢复"但没配置恢复条件:检查告警规则的"恢复阈值"和"持续时长",确保数据回正常后能在指定时长内被判定为恢复。
Q2:“认领"和"屏蔽"有什么区别?
A:
- 认领:标记"我在处理这条告警”,不会阻止任何后续动作 — 事件继续在列表里,通知规则也继续推送(如果规则配了重复通知)。主要是协作信号:让其他值班同学知道有人接手了。
- 屏蔽:基于标签的事件过滤,命中屏蔽规则的事件不会再产生告警通知,也不在告警事件列表里。用于"已知问题、暂时不要再吵"。
详见 屏蔽规则 文档。
Q3:删除事件之后,告警规则会重新产生这条事件吗?
A:会。删除只是把当前事件记录清掉,告警规则本身没被禁用,下次查询周期到了如果条件还满足,会重新产生一条新的活跃告警事件(Hash 可能相同)。
所以别用删除当"屏蔽":要长期止吵,去 屏蔽规则 或者直接禁用告警规则。
Q4:列表的"持续时长"显示一周、一个月甚至几年,这正常吗?
A:通常是被遗忘的"僵尸告警",由以下情况造成:
- 数据源被删除或停用,事件再也无法收到"恢复"信号;
- 标签 schema 变更后老事件无法被新规则覆盖;
- 早期测试规则未清理。
定期清理思路:用左侧的「数据源」筛选过滤、按时间倒序排,把超过合理 SLA 的事件批量删除。