# 屏蔽规则

按标签匹配、时间窗或维护计划屏蔽，并看到一条屏蔽规则现在吞掉了什么。

最后校对于 2026-10-10

这页办完你会得到：一条在指定时间窗内让某类告警不吵的规则，并且你清楚它到底是 「事件也不产生」还是「事件照记、只是不发」。

入口：**告警通知 → 规则管理**，页面顶部切到 **屏蔽规则** tab（`/alert-mutes`）。

![屏蔽规则列表](https://n9e.github.io/zh/img/docs/events/mute-rules.zh.webp)![屏蔽规则列表](https://n9e.github.io/zh/img/docs/events/mute-rules.zh.dark.webp)

## 1. 新建一条屏蔽规则[​](#1-新建一条屏蔽规则 "1. 新建一条屏蔽规则的直接链接")

点 **新增**。表单分三段，前两段标了「核心」。

![屏蔽规则表单](https://n9e.github.io/zh/img/docs/events/mute-form.zh.webp)![屏蔽规则表单](https://n9e.github.io/zh/img/docs/events/mute-form.zh.dark.webp)

**筛选条件**——决定哪些事件被屏蔽，各项之间是「与」，留空表示不限制：

| 字段                | 说明                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------- |
| 业务组              | 必填。一条屏蔽规则**只对这一个业务组的事件生效**，界面上就写着这是为了防止误配把全公司的告警屏蔽掉 |
| 数据源类型 / 数据源 | 留空 = 不限。选了类型再选实例，可以只屏蔽某一个 Prometheus                                         |
| 事件等级            | 三个复选框，默认全选。只有勾上的级别会被屏蔽，其余照常告警                                         |
| 事件标签            | 标签匹配条件，可以加多行，多行之间是「与」                                                         |

标签条件的六种操作符，全部作用在标签的**值**上：

| 操作符   | 含义               |
| -------- | ------------------ |
| `==`     | 等于某个值         |
| `!=`     | 不等于某个值       |
| `=~`     | 匹配正则           |
| `!~`     | 不匹配正则         |
| `in`     | 属于给定的一组值   |
| `not in` | 不属于给定的一组值 |

想要「或」的效果，就拆成多条屏蔽规则——**任一条命中即屏蔽**。

数据源和事件标签**都留空是允许的**，但表单会黄条提示「该规则将屏蔽所选业务组下的所有 告警事件」。确认过再存。

## 2. 选屏蔽方式[​](#2-选屏蔽方式 "2. 选屏蔽方式的直接链接")

**屏蔽设置** 段里第一个选项就是 **屏蔽方式**，两个值差别很大：

* **屏蔽事件与通知**（默认）：命中后**事件根本不产生**。干净，代价是这段时间的历史里 查不到，事后复盘缺一块。适合已经确认不用管的噪声。
* **只屏蔽通知**：事件照常产生、照常落到列表和历史里，只是不发出去。适合机器重启、 变更维护——事后还能复盘这期间到底有没有异常。

界面上那条紫色提示「两种屏蔽方式怎么选」说的就是这两句，可以点「不再提示」收起。

## 3. 定时间：固定时间还是周期时间[​](#3-定时间固定时间还是周期时间 "3. 定时间：固定时间还是周期时间的直接链接")

**屏蔽时间类型** 两个 tab：

* **固定时间**：先选 **快捷时长**（默认 30m），起止时间自动算出来，也可以手工改成任意区间。 一次性的变更窗口用这个。
* **周期时间**：选周几 + 每天的起止时刻，可以加多段，**长期有效不会过期**。 「每晚 22:00 之后不吵」这类用这个。

周期时间**不支持单段跨天**。要屏蔽 22:00 到次日 06:00，拆成两段：`22:00–23:59` 和 `00:00–06:00`，两段都选周一到周日。

最后填 **规则标题**（列表里显示的就是它，会按筛选条件自动生成一个，可改）和 **屏蔽原因**——把「为什么屏蔽、谁负责、预计什么时候解除」写进去，别人才知道这条能不能删。

## 4. 保存前先测试[​](#4-保存前先测试 "4. 保存前先测试的直接链接")

底部除了 **保存** 还有 **测试**。测试会拿现有事件跑一遍这条规则的匹配条件， 告诉你它现在会命中哪些——这是唯一能在生效前看到「这条规则要吞掉什么」的地方。

保存时，如果有已存在的事件命中筛选条件，会弹一个预览框列出它们，并给两个选项： **仅保存** 或 **保存并删除相关事件**。

预期结果：列表里多出一行，**屏蔽时间** 列显示生效区间，过期的规则显示「已过期」。 过期规则不会自己消失，用列表右上的 **屏蔽规则清理** 按时间批量删。

## 屏蔽命中的判定顺序[​](#屏蔽命中的判定顺序 "屏蔽命中的判定顺序的直接链接")

一条事件是否被屏蔽，按这个顺序逐项判：**数据源 → 时间窗 → 事件等级 → 事件标签**， 全部满足才算命中。

同一条事件同时命中多条屏蔽规则时，**强的那个赢**：只要有任意一条是「屏蔽事件与通知」， 结果就是事件不产生；只有当命中的规则全是「只屏蔽通知」，才走只屏蔽通知那条路。

## 几个容易踩的点[​](#几个容易踩的点 "几个容易踩的点的直接链接")

* **屏蔽只影响新的判定结果。** 已经在活跃列表里的那条事件不会因为你建了屏蔽规则就消失， 它只是在屏蔽期间不再产生通知。想让它立刻消失，去详情里删掉（注意删除的前提，见 [活跃事件与历史事件](https://n9e.github.io/zh/docs/events/active-historical.md)）。
* **时间窗按事件的触发时刻判。** 每个判定周期事件的触发时刻都会更新，所以一条从窗口前 就在烧的事件，窗口一开也会被屏蔽住；窗口一关它又开始发。
* **Pipeline 在屏蔽之前跑。** 工作流改写出来的标签，屏蔽规则是能匹配到的—— 先富化再按新标签屏蔽，这条路是通的。顺序见[降噪与路由模型](https://n9e.github.io/zh/docs/concepts/noise-routing.md)。
* **屏蔽不省引擎开销。** 规则照常按周期查询和判定，省掉的只是后面的落库和通知。

## 下一步[​](#下一步 "下一步的直接链接")

* 反过来，想让更多人收到：[订阅规则](https://n9e.github.io/zh/docs/events/subscriptions.md)
* 某类事件根本不该存在：[事件 Pipeline](https://n9e.github.io/zh/docs/events/pipelines.md)
* 屏蔽了还是收到通知：[通知发到了错误的人](https://n9e.github.io/zh/docs/troubleshooting/wrong-routing.md)
* 成套的止吵套路：[降噪模式](https://n9e.github.io/zh/docs/events/noise-patterns.md)
