> ## 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.

# Issue 告警

> 了解 Flashduty RUM Issue 如何触发告警，以及如何配置告警分级和数据过滤

Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue，帮助您优先处理最具影响力的问题，减少服务停机时间和用户沮丧感。

您可以在控制台每日巡检 Issue，也可以配置告警通知，在问题发生时第一时间感知。Flashduty RUM 的告警能力包括：

* **告警通知**：将 Issue 以告警事件投递到 Flashduty 协作空间，通过分派策略通知值班人员
* **告警分级**：根据错误属性（如用户、页面、环境等）自定义告警优先级
* **数据过滤**：在 Error 聚合为 Issue 之前过滤噪音数据，减少无效告警

## 开启告警

<Steps>
  <Step title="进入告警设置">
    前往「应用管理」，选择目标应用，点击左侧「告警设置」
  </Step>

  <Step title="开启告警">开启告警开关，选择将告警投递至多个协作空间</Step>

  <Step title="配置通知规则">
    告警的通知规则遵循协作空间下的分派策略，您可以为团队设定值班人员，在告警发生时分派给值班人
  </Step>
</Steps>

<Frame>
  <img src="https://docs-cdn.flashcat.cloud/imges/png/7fbb901611a71dd559da8d59c6251472.png" alt="告警设置" />
</Frame>

<Warning>
  您必须开通 On-call 服务才能开启 Issue 告警。注意 On-call
  服务按照活跃用户进行收费，但没有 License
  的成员也可以接收告警通知，即使是免费版本也有基本的通知能力。
</Warning>

## 告警触发条件

| 触发条件            | 说明                                                                                               |
| --------------- | ------------------------------------------------------------------------------------------------ |
| **新的 Issue**    | 错误事件导致新的 Issue 出现，会触发告警事件                                                                        |
| **Issue 更新**    | 持续有错误事件合入一个未关闭（待处理、处理中）的 Issue，且距离上一个触发告警事件超过 24 小时，将会重新触发告警事件                                   |
| **Issue 重开**    | 新的错误合入已关闭的 Issue，导致 Issue 被重新打开，即问题复现                                                            |
| **Issue 优先级升级** | 当高优先级的错误事件进入低优先级的 Issue 时，Issue 优先级会自动升级并触发新的告警事件。例如，一个 P2 级别的 Issue 收到匹配 P0 规则的错误，会升级为 P0 并触发告警 |

<Note>
  * Issue 触发的是一个告警事件，此告警事件将投递到协作空间 -
    是否触发告警通知取决于您在协作空间下的集成配置、降噪配置以及分派策略配置 - 当
    Issue 关闭时，系统会触发关闭类型的告警事件，其关联的故障可能会自动恢复
</Note>

## 告警严重程度

### 默认分级规则

如果未配置自定义告警分级规则，Issue 触发的告警严重程度由系统自动判定：

<Tabs>
  <Tab title="基础判断">
    | 条件               | 严重程度     |
    | ---------------- | -------- |
    | Issue 存在时间超过 7 天 | Info     |
    | 崩溃问题             | Critical |
  </Tab>

  <Tab title="评分制">
    通过累积分数确定等级：

    | 分数范围   | 严重程度         |
    | ------ | ------------ |
    | ≥70 分  | Critical（严重） |
    | ≥40 分  | Warning（警告）  |
    | \<40 分 | Info（提示）     |
  </Tab>

  <Tab title="评分因素">
    | 因素         | 评分规则                                 |
    | ---------- | ------------------------------------ |
    | **环境影响**   | 生产环境（50分）、预发环境（30分）、其他环境（10分）        |
    | **错误关键词**  | 包含严重关键词（+30分）或警告关键词（+15分）            |
    | **可疑原因**   | API 失败（+20分）、代码异常（+15分）、未知/网络错误（+5分） |
    | **问题持续时间** | 超过 24 小时（+20分）、超过 12 小时（+10分）        |
  </Tab>
</Tabs>

### 自定义告警分级

您可以在「告警设置」中配置自定义告警分级规则，根据错误的属性特征设定告警优先级（P0 / P1 / P2），实现更精细的告警控制。

自定义分级规则在 Error 上报时评估，得到「预置优先级」。当 Error 聚合到 Issue 时：

* **新建 Issue**：Issue 的优先级由首个 Error 的预置优先级决定
* **匹配已有 Issue**：如果 Error 的预置优先级更高，Issue 优先级自动升级（只升不降）
* **未匹配任何规则**：使用默认优先级 P2

每条分级规则包含以下要素：

| 要素       | 说明                                            |
| -------- | --------------------------------------------- |
| **规则名称** | 便于识别和管理的名称                                    |
| **匹配条件** | 基于 Error 属性的筛选条件，同一规则内多个条件为 AND 关系            |
| **告警级别** | 匹配后设定的优先级：P0（Critical）/ P1（Warning）/ P2（Info） |

规则按优先级顺序从上到下逐条评估，**首个匹配的规则立即生效**，后续规则不再检查。您可以通过拖拽调整规则顺序来改变优先级。

<Tip>
  每个应用最多可配置 **6 条**告警分级规则。每条规则最多支持 **2 组** OR 条件组，每组最多 **3 个** AND 条件，每个条件最多可填写 **8 个**匹配值。
</Tip>

#### 支持的匹配字段

| 字段                             | 说明          | 示例                        |
| ------------------------------ | ----------- | ------------------------- |
| 用户 ID（`error.usr_id`）          | 上报错误的用户标识   | `vip_001`                 |
| 用户邮箱（`error.usr_email`）        | 用户邮箱地址      | `*@vip.com`               |
| 页面 URL（`error.view_url`）       | 错误发生的页面完整地址 | 包含 `/payment`             |
| 错误类型（`error.error_type`）       | 错误的类型分类     | `TypeError`、`SyntaxError` |
| 错误消息（`error.error_message`）    | 错误的描述文本     | 包含 `Cannot read property` |
| 堆栈（`error.error_stack`）        | 错误的堆栈信息     | 包含 `at handleClick`       |
| 环境（`error.env`）                | 错误发生的环境     | `production`、`staging`    |
| 服务（`error.service`）            | 错误所属的服务     | `payment`                 |
| 版本（`error.version`）            | 应用版本号       | `1.2.0`                   |
| 浏览器（`error.browser_name`）      | 浏览器名称       | `Chrome`、`Safari`         |
| 浏览器版本（`error.browser_version`） | 浏览器版本号      | `120.0`                   |
| 是否崩溃（`error.is_crash`）         | 是否为崩溃错误     | `true`                    |

匹配方式支持「包含」和「不包含」两种操作。

#### 配置示例

<AccordionGroup>
  <Accordion title="VIP 用户错误立即告警">
    为 VIP 用户的错误设置最高优先级，确保第一时间响应：

    * 匹配条件：用户 ID 包含 `vip`
    * 告警级别：P0（Critical）
  </Accordion>

  <Accordion title="支付页面错误优先处理">
    支付页面是核心业务流程，相关错误需要优先处理：

    * 匹配条件：页面 URL 包含 `/payment`
    * 告警级别：P1（Warning）
  </Accordion>

  <Accordion title="生产环境崩溃立即告警">
    生产环境的崩溃需要立即响应：

    * 匹配条件：环境 包含 `production`，且 是否崩溃 包含 `true`
    * 告警级别：P0（Critical）
  </Accordion>
</AccordionGroup>

<Tip>
  * Issue 的优先级只升不降，确保重要问题不会被后续低优先级的错误降级 - 如需根据
    Issue 的影响范围（如影响用户数、错误数量等）调整优先级，请在 Flashduty
    集成的[告警处理
    Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中配置
</Tip>

## 数据过滤

数据过滤允许您在 Error 聚合为 Issue **之前**过滤掉不需要关注的噪音数据。被过滤的 Error 不会参与 Issue 聚合，也不会产生告警。

您可以在「告警设置」中添加过滤规则。每条规则可设置多个匹配条件，同一规则内的条件为 AND 关系。支持的匹配字段与[自定义告警分级](#自定义告警分级)一致。

| 场景        | 示例规则                          |
| --------- | ----------------------------- |
| 排除第三方脚本错误 | 错误堆栈 包含 `cdn.third-party.com` |
| 排除已知无害错误  | 错误消息 包含 `ResizeObserver loop` |
| 排除调试页面错误  | 页面 URL 包含 `/debug`            |

<Tip>
  * 被过滤的 Error 不会参与 Issue
    聚合和告警，但数据仍然保留，可在查看器中通过筛选条件查看 -
    如果只是想暂时屏蔽某类告警但保留 Issue 数据，建议使用 Flashduty 告警处理
    Pipeline 中的「告警丢弃」功能
</Tip>

## 与 Flashduty 协同

RUM 告警与 Flashduty 深度协同，形成完整的告警处理链路：

| 层级   | 配置位置           | 核心能力             | 适用场景                |
| ---- | -------------- | ---------------- | ------------------- |
| 数据过滤 | RUM 告警设置       | 过滤噪音 Error       | 永久忽略第三方脚本错误、调试页面错误等 |
| 告警分级 | RUM 告警设置       | 根据 Error 属性设定优先级 | VIP 用户告警、核心页面告警等    |
| 告警处理 | Flashduty 集成配置 | 标题定制、优先级调整、丢弃/抑制 | 根据影响用户数调整级别、抑制重复告警等 |
| 告警分派 | Flashduty 协作空间 | 路由、值班排班、通知渠道     | 分派到不同团队、配置通知方式等     |

您可以在 Flashduty 的[告警处理 Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中进一步处理 RUM 告警，例如根据影响用户数调整告警级别、按时间窗口抑制重复告警、自定义告警标题格式等。

## 延伸阅读

<CardGroup cols={2}>
  <Card title="RUM 告警降噪" icon="sliders" href="/zh/rum/best-practices/alert-noise-reduction">
    典型场景配置方案，快速减少无效告警干扰
  </Card>

  <Card title="告警处理 Pipeline" icon="filter" href="/zh/on-call/integration/alert-integration/alert-pipelines">
    在集成层对告警进行清洗、转换和过滤
  </Card>

  <Card title="告警降噪" icon="volume-slash" href="/zh/on-call/channel/noise-reduction">
    在协作空间层面聚合和抑制告警
  </Card>

  <Card title="告警分派" icon="route" href="/zh/on-call/channel/escalation-rule">
    配置分派策略，将告警路由到正确的值班人员
  </Card>
</CardGroup>
