> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# 告警降噪

> 通过聚合、静默、抑制等策略减少告警噪音，提升处理效率

<Tip>**版本要求**：告警聚合、风暴预警和抑制策略功能需要 On-call 标准版及以上订阅，静默策略在所有版本中可用。[了解更多](https://flashcat.cloud/flashduty/price/)</Tip>

告警降噪是 Flashduty On-call 的核心能力之一，当告警风暴来袭时，您可能会收到数百条相似通知。降噪功能将这些告警聚合为一条故障，让您只需处理一次，而非被重复通知淹没。

## 为什么需要降噪

| 场景              | 无降噪              | 有降噪           |
| :-------------- | :--------------- | :------------ |
| 服务器宕机触发 100 条告警 | 收到 100 条通知，需逐条处理 | 收到 1 条故障，统一处理 |
| 网络抖动导致告警反复触发/恢复 | 通知轰炸，疲于应对        | 标记抖动状态，减少干扰   |
| 凌晨批量告警          | 被电话/短信吵醒多次       | 仅通知一次，睡眠不受影响  |

<Tip>
  **降噪的核心价值**：

  * 减少通知频次，避免告警疲劳
  * 聚焦真正需要关注的问题
  * 提升故障响应和处理效率
</Tip>

## 核心概念

理解降噪前，需要先了解三个核心对象的关系：

```
监控系统 → 事件（Event）→ 告警（Alert）→ 故障（Incident）
```

| 对象     | 定义                           | 来源                  |
| :----- | :--------------------------- | :------------------ |
| **事件** | 监控系统的原始通知，每次触发或恢复都是一次事件      | Zabbix、Prometheus 等 |
| **告警** | 由事件自动触发，同一告警的多次事件会合入同一条告警    | Flashduty 自动创建      |
| **故障** | Flashduty 处理的主要对象，由告警触发或手动创建 | 自动触发或手动创建           |

<Note>
  **关键理解**：

  * 一条告警可以包含多个事件（同一告警的触发、恢复）
  * 一条故障可以包含多条告警（相似告警被聚合到一起）
  * 降噪发生在「告警 → 故障」这个环节
</Note>

## 降噪过程

当监控系统推送告警到 Flashduty On-call 时，系统会自动执行以下流程：

<Steps>
  <Step title="接收事件">
    判断是否合入已有告警，否则创建新告警。
  </Step>

  <Step title="处理新告警">
    判断是否合入已有故障，否则创建新故障。
  </Step>

  <Step title="触发通知">
    新故障按分派策略通知相关人员。
  </Step>

  <Step title="后续告警合入">
    后续告警合入已有故障，不再重复通知。
  </Step>
</Steps>

<Frame>
  ![告警降噪流程图](https://docs-cdn.flashcat.cloud/images/png/6fec1c4fa6318119ab5c7f69f0c3cd55.png)
</Frame>

## 告警聚合

进入 协作空间详情 → **降噪配置** 进行配置。

告警聚合将多条相似告警合并为一条故障，统一分派和通知。当告警风暴来袭时，您只需处理一条故障，而非数百条重复通知。

<Note>
  新建协作空间默认关闭告警聚合。未开启时，每条告警将创建一条独立故障。
</Note>

### 聚合模式

Flashduty On-call 提供两种聚合模式：

| 模式       | 适用场景           | 特点                     |
| :------- | :------------- | :--------------------- |
| **智能聚合** | 快速上手，对聚合精度要求不高 | 基于机器学习分析语义相似度，无需手动配置规则 |
| **规则聚合** | 需要精确控制聚合逻辑     | 按指定维度（属性、标签）精确匹配       |

### 通用配置

| 配置项        | 说明                                                                                             |
| :--------- | :--------------------------------------------------------------------------------------------- |
| **聚合窗口**   | 可选开启。关闭时，将持续合入新告警，直到故障被关闭。开启时，聚合窗口内的告警会被合入，超出时间范围后告警将被聚合到新的故障                                  |
| **窗口计时起点** | 仅在聚合窗口开启时可配置。**故障触发**（默认）：从故障创建时开始固定计时，到达窗口时长后停止聚合；**告警合入故障**：每次有新告警合入时重置计时，窗口从最后一次合入开始重新计算    |
| **窗口时长**   | 仅在聚合窗口开启时可配置。设置聚合窗口的持续时间，最小 1 分钟。规则聚合与智能聚合共享同一上限开关：默认最大 24 小时，开通后可扩展至 30 天（需联系 Flashduty 团队开启） |
| **风暴预警**   | 当合入告警数达到设定阈值时，系统在故障时间线中记录告警风暴事件并触发预警通知，提醒您加急处理。支持配置最多 5 个阈值，每个阈值范围为 2 - 10,000                 |
| **严格聚合**   | 开启时，空值标签视为不同项；关闭时，空值标签视为相同项（智能聚合不支持）                                                           |

<Tabs>
  <Tab title="智能聚合">
    当新告警与活跃故障的内容高度相似时，自动合入故障。系统基于机器学习计算告警之间的语义相似度，无需手动定义聚合规则。

    <Steps>
      <Step title="选择聚合模式">
        选择 **智能聚合** 模式
      </Step>

      <Step title="指定参与计算字段">
        选择参与相似度计算的字段。默认字段包括：标题（title）、描述（description）、labels.service、labels.resource。你可以根据业务需要添加或移除字段，最多支持选择 **10 个** 字段。点击 **重置** 可恢复默认配置。
      </Step>
    </Steps>

    系统将根据所选字段的内容计算告警之间的相似程度，当相似度达到阈值时，新告警将自动合入已有故障。

    <Frame caption="智能聚合配置">
      ![智能聚合配置](https://docs-cdn.flashcat.cloud/images/png/eab535b1239723a6adc41841013d7b37.png)
    </Frame>
  </Tab>

  <Tab title="规则聚合">
    按指定维度精确匹配，仅当所有维度值完全相同时才聚合。

    **统一控制**：空间内所有告警使用相同维度聚合。

    <Frame caption="统一控制配置">
      ![统一控制配置](https://docs-cdn.flashcat.cloud/images/png/050d08ecb83427d7c56631f3dc19b553.png)
    </Frame>

    **细粒度控制**：按条件匹配不同聚合维度，针对不同类型的告警采用不同的聚合策略。你可以添加多个条件分支，每个分支包含匹配条件和对应的聚合维度：

    * 系统从上到下依次匹配条件，命中第一个满足条件的分支后使用该分支的聚合维度
    * 支持上下移动条件分支的优先级顺序
    * 底部设置 **默认维度** 作为兜底，当告警未匹配到任何条件时，按照默认维度进行聚合

    <Frame caption="细粒度控制配置">
      ![细粒度控制配置](https://docs-cdn.flashcat.cloud/images/png/f8e69fbecb54fe52a71dc526134fc7d6.png)
    </Frame>
  </Tab>
</Tabs>

### 配置限制

为保证聚合性能与稳定性，以下字段存在后端硬上限：

| 聚合模式     | 限制项                | 上限       | 说明                                                              |
| :------- | :----------------- | :------- | :-------------------------------------------------------------- |
| **规则聚合** | 聚合维度（equals）       | 每组 ≤ 5 个 | 统一控制与细粒度控制中单条规则可选的维度数量                                          |
| **规则聚合** | 细粒度分支（cases）       | ≤ 100 条  | 细粒度控制下可配置的条件分支总数                                                |
| **智能聚合** | 参与相似度计算字段（i\_keys） | ≤ 10 个   | 默认 4 个：`title`、`description`、`labels.service`、`labels.resource` |

### 聚合效果

设置按 **告警检查项** 聚合后，5 条告警通知被聚合为 1 条故障：

```
故障：cpu idle < 20% / es.nj.03，Critical

  - 告警 cpu idle < 20% / es.nj.03：
      - 事件1：es.nj.03，cpu.idle = 10%，Critical
      - 事件2：es.nj.03，cpu.idle = 18%，Warning
      - 事件4：es.nj.03，cpu.idle = 10%，Ok

  - 告警 cpu idle < 20% / es.nj.01：
      - 事件3：es.nj.01，cpu.idle = 15%，Warning
  
  - 告警 cpu idle < 20% / es.nj.02：
      - 事件5：es.nj.02，cpu.idle = 19%，Warning
```

在故障详情页查看聚合关系：

* 点击告警标题，查看告警时间线和关联事件
* 点击事件点，查看事件上报的具体内容

<Frame caption="聚合效果展示">
  ![聚合效果](https://docs-cdn.flashcat.cloud/images/png/f91f5583c3176f40afd5e47711405c9a.png)
</Frame>

## 抖动检测

当同一故障频繁触发与恢复时，系统将其标记为"抖动"状态，避免通知轰炸。

进入 协作空间详情 → 降噪配置 → **抖动检测**：

| 选项        | 行为               |
| :-------- | :--------------- |
| **关闭**    | 不检测抖动状态          |
| **仅提醒**   | 标记抖动状态，继续按策略通知   |
| **提醒后静默** | 标记抖动状态，首次提醒后不再通知 |

<Note>
  新建协作空间默认开启抖动检测（仅提醒模式）。
</Note>

### 可配置参数

| 参数                        | 说明                             | 默认值    | 取值范围       |
| :------------------------ | :----------------------------- | :----- | :--------- |
| **状态变化次数** (max\_changes) | 在观测窗口内，告警状态变化达到该次数即判定为抖动       | 4 次    | 2–100      |
| **观测窗口** (in\_mins)       | 统计状态变化的时间窗口                    | 60 分钟  | 1–1440 分钟  |
| **静默时长** (mute\_mins)     | 判定为抖动后，静默通知的持续时间（仅"提醒后静默"模式生效） | 120 分钟 | 30–1440 分钟 |

<Tip>
  "相同故障"指具有相同 Alert Key 的故障，通常使用上游系统推送的告警 ID 作为唯一标识。
</Tip>

## 静默策略

在维护窗口或已知问题期间，静默规则可以屏蔽特定条件的告警通知。

进入 协作空间详情 → 降噪配置 → **静默规则**。

### 静默时间

| 类型              | 说明                                                              |
| :-------------- | :-------------------------------------------------------------- |
| **单次静默**        | 指定时间段内生效，过期后规则保留但不再生效                                           |
| **周期静默 - 星期模式** | 按每周固定时间段生效，如每周六 00:00-06:00                                     |
| **周期静默 - 日历模式** | 按 [服务日历](/zh/on-call/configuration/service-calendar) 的工作日/休息日生效 |

**单次静默的时间输入**：左侧为持续时长输入框（默认 `1d`），右侧为绝对时间范围选择器，两者联动生效：

* 持续时长支持 `30m`、`1h`、`12h`、`1d`、`1w`、`2w` 等简写；修改时长会以当前时间为起点重新计算结束时间
* 也可直接在右侧时间范围选择器中指定起止时间，左侧时长会同步刷新
* 开始时间必须早于结束时间，且不能为空

### 静默条件

定义哪些告警需要被静默，支持多条件组合。

| 匹配项      | 说明         | 示例                  |
| :------- | :--------- | :------------------ |
| **严重程度** | 按告警级别匹配    | 仅静默 `Info` 级别       |
| **标题**   | 按告警标题关键词匹配 | 标题包含「计划维护」          |
| **描述**   | 按告警描述内容匹配  | 描述包含「重启」            |
| **集成来源** | 按告警的集成来源匹配 | 仅静默来自某个集成的告警        |
| **标签**   | 按标签键值对匹配   | `host=db-master-01` |

**组合逻辑**：

* **AND**：所有条件同时满足才静默
* **OR**：任一条件满足即静默

详见 [配置过滤条件](/zh/on-call/configuration/filter-conditions)。

### 静默行为

| 行为       | 说明                               |
| :------- | :------------------------------- |
| **直接丢弃** | 告警不在任何列表显示，无记录                   |
| **保留标记** | 告警在 **原始告警列表** 中显示并标记为"静默"，可筛选查看 |

<Note>
  下次创建静默规则时，会沿用您上一次选择的静默行为作为默认值。
</Note>

### 快速静默

基于已发生的故障快速创建临时静默规则。

**操作路径**：故障详情 → 更多操作 → **快速静默**

* 规则名称默认为「快速静默 - #短标识」，描述中包含故障标题
* 生效范围为故障所属协作空间（不可更改）
* 默认生效 1 天。您可以在左侧持续时间输入框中填写自定义时长（支持 `30m`、`1h`、`12h`、`1d`、`1w`、`2w` 等写法），或在右侧时间范围选择器中指定绝对的起止时间；到期后规则自动删除
* 条件默认为故障严重程度和筛选后的标签匹配（自动排除数值型、过长及特殊标签）

<Frame caption="快速静默配置">
  ![快速静默](https://docs-cdn.flashcat.cloud/images/png/e80c2632d9065b28499edfa5a81a8505.png)
</Frame>

<Note>
  同一故障重复操作快速静默时，会编辑原规则而非创建新规则。
</Note>

## 抑制策略

当根因告警存在时，自动抑制相关的次要告警。例如：Critical 级别故障存在时，抑制同一检查项的 Warning/Info 级别故障。

### 配置路径

| 位置       | 路径                       | 特点            |
| :------- | :----------------------- | :------------ |
| **协作空间** | 协作空间详情 → 降噪配置 → **抑制规则** | 仅对当前协作空间的告警生效 |
| **告警集成** | 告警集成详情 → 告警处理 → **告警抑制** | 对通过该集成接入的告警生效 |

### 抑制条件

当新告警满足条件，且 10 分钟内存在满足条件的 **活跃告警**（未被认领且未恢复的告警），且两者存在相同项时，新告警被抑制。

| 配置项        | 说明                              |
| :--------- | :------------------------------ |
| **新的告警条件** | 被抑制告警需满足的条件，如严重程度为 Warning/Info |
| **活跃告警条件** | 作为抑制源的告警需满足的条件，如严重程度为 Critical  |
| **相同项**    | 两者必须相同的属性或标签，如检查项、主机名           |

### 抑制行为

| 行为       | 说明                             |
| :------- | :----------------------------- |
| **直接丢弃** | 告警不在任何列表显示，无记录                 |
| **保留标记** | 告警在 **告警列表** 中显示并标记为"抑制"，可筛选查看 |

### 配置示例

**场景**：当存在 Critical 级别告警时，抑制同一检查项的 Warning/Info 级别告警。

<Frame caption="抑制规则配置示例">
  ![抑制规则配置](https://docs-cdn.flashcat.cloud/images/png/fc40f7d4ae270f66d50d200d216a42ea.png)
</Frame>

## 常见问题

<AccordionGroup>
  <Accordion title="故障标题会随新告警合入而改变吗？" icon="circle-question">
    不会。故障标题与触发该故障的第一条告警相同，可随时手动修改，不会随新告警变化。
  </Accordion>

  <Accordion title="故障标签会随新告警合入而改变吗？" icon="circle-question">
    * **手工创建的故障**：不会，标签列表永远为空
    * **自动触发的故障**：有可能，故障标签与第一条告警保持一致，如果该告警标签变化，故障标签也会同步更新
  </Accordion>

  <Accordion title="告警标签会随新事件合入而改变吗？" icon="circle-question">
    会。告警标签总是与最新合入的事件保持一致。但如果新事件是恢复事件，告警将保持已有标签不变，仅增加之前不存在的标签。
  </Accordion>

  <Accordion title="单个故障最多聚合多少条告警？" icon="circle-question">
    上限为 5000 条，主要为了保证控制台渲染性能。由于后台并发处理，实际可能略超此限制。
  </Accordion>

  <Accordion title="单个告警最多关联多少条事件？" icon="circle-question">
    * **规则聚合 / 智能聚合**：无上限，聚合窗口默认最大为 24 小时；规则聚合与智能聚合共享同一上限开关，开通后可扩展至 30 天（需联系 Flashduty 团队开启）。告警超出窗口后不再合入新事件，新事件将产生新故障
    * 如果关闭了聚合窗口，告警将持续合入已有故障，直到故障被关闭，不受时间限制
  </Accordion>
</AccordionGroup>

## 延伸阅读

<CardGroup cols={2}>
  <Card title="配置分派策略" icon="sitemap" href="/zh/on-call/channel/escalation-rule">
    定义告警通知和升级规则
  </Card>

  <Card title="配置过滤条件" icon="filter" href="/zh/on-call/configuration/filter-conditions">
    了解条件匹配语法
  </Card>
</CardGroup>
