diff --git a/zh/rum/best-practices/alert-noise-reduction.mdx b/zh/rum/best-practices/alert-noise-reduction.mdx index ccadc92..ec55898 100644 --- a/zh/rum/best-practices/alert-noise-reduction.mdx +++ b/zh/rum/best-practices/alert-noise-reduction.mdx @@ -9,16 +9,23 @@ Flashduty RUM 提供了从数据过滤、告警分级到 Flashduty 告警处理 本文将介绍 RUM 告警配置的核心原则和典型场景方案,帮助您快速减少无效告警干扰。 + + 本文涉及的过滤和分级配置均在控制台「应用管理」中完成:选择目标应用,点击左侧「告警设置」即可配置。详细配置说明请参考 + [Issue 告警](/zh/rum/error-tracking/issue-alerts)。 + + +![2026-03-13-15-08-11](https://docs-cdn.flashcat.cloud/imges/png/7fbb901611a71dd559da8d59c6251472.png) + ## 告警处理链路 RUM 告警从 Error 产生到通知到人,经过以下四层处理: -| 层级 | 配置位置 | 核心作用 | -|------|----------|----------| -| ① 数据过滤 | RUM 应用 → 告警设置 | 在源头排除不需要的 Error,减少无效 Issue | -| ② 告警分级 | RUM 应用 → 告警设置 | 根据 Error 属性设定 Issue 优先级 | -| ③ 告警处理 | Flashduty 集成 → 告警处理 | 基于 Issue 维度做优先级调整、丢弃/抑制 | -| ④ 告警分派 | Flashduty 协作空间 | 路由到团队、通知值班人员 | +| 层级 | 配置位置 | 核心作用 | +| ---------- | ------------------------- | ---------------------------------------- | +| ① 数据过滤 | RUM 应用 → 告警设置 | 在源头排除不需要的 Error,减少无效 Issue | +| ② 告警分级 | RUM 应用 → 告警设置 | 根据 Error 属性设定 Issue 优先级 | +| ③ 告警处理 | Flashduty 集成 → 告警处理 | 基于 Issue 维度做优先级调整、丢弃/抑制 | +| ④ 告警分派 | Flashduty 协作空间 | 路由到团队、通知值班人员 | 配置时建议**从上到下依次设置**:先过滤噪音,再分级告警,最后在 Flashduty 侧做精细化处理。 @@ -33,22 +40,26 @@ RUM 告警从 Error 产生到通知到人,经过以下四层处理: - 错误堆栈 包含 `chrome-extension://` - 错误堆栈 包含 `moz-extension://` - 错误堆栈 包含 `cdn.third-party.com` + 某些错误频繁出现但不影响用户体验: - 错误消息 包含 `ResizeObserver loop` - 错误消息 包含 `Script error` + 如果您只关注生产环境的告警,可以过滤其他环境的错误: - 环境 不包含 `production` + -被过滤的 Error 不会参与 Issue 聚合和告警,但数据仍然保留,您可以在查看器中通过筛选条件查看这些被过滤的错误。 + 被过滤的 Error 不会参与 Issue + 聚合和告警,但数据仍然保留,您可以在查看器中通过筛选条件查看这些被过滤的错误。 ## 第二步:配置告警分级 @@ -57,11 +68,11 @@ RUM 告警从 Error 产生到通知到人,经过以下四层处理: ### 分级策略建议 -| 优先级 | 适用场景 | 期望响应时间 | -|--------|----------|--------------| -| **P0(Critical)** | 核心业务中断、VIP 用户受影响、生产环境崩溃 | 立即响应 | -| **P1(Warning)** | 重要功能异常、核心页面错误 | 当日处理 | -| **P2(Info)** | 非核心功能错误、低影响问题 | 按计划处理 | +| 优先级 | 适用场景 | 期望响应时间 | +| ------------------ | ------------------------------------------ | ------------ | +| **P0(Critical)** | 核心业务中断、VIP 用户受影响、生产环境崩溃 | 立即响应 | +| **P1(Warning)** | 重要功能异常、核心页面错误 | 当日处理 | +| **P2(Info)** | 非核心功能错误、低影响问题 | 按计划处理 | ### 推荐规则配置 @@ -73,12 +84,14 @@ RUM 告警从 Error 产生到通知到人,经过以下四层处理: - 条件:环境 包含 `production`,且 是否崩溃 包含 `true` - 告警级别:P0 + VIP 用户的体验直接关系到商业价值。 - 条件:用户 ID 包含 `vip`(或通过自定义字段 `context.user.level` 包含 `vip` 来匹配) - 告警级别:P0 + 支付、登录、结算等核心业务页面的错误需要优先处理。 @@ -87,6 +100,7 @@ RUM 告警从 Error 产生到通知到人,经过以下四层处理: - 告警级别:P1 可以为每个核心页面创建单独的规则,或在同一规则中使用多个匹配值。 + 未匹配任何规则的错误自动归为 P2,按常规流程处理。无需额外配置。 @@ -94,18 +108,19 @@ RUM 告警从 Error 产生到通知到人,经过以下四层处理: -规则数量建议控制在 3-6 条,覆盖最关键的场景即可。过多的规则会增加维护成本,且容易导致优先级混乱。 + 规则数量建议控制在 3-6 + 条,覆盖最关键的场景即可。过多的规则会增加维护成本,且容易导致优先级混乱。 ## 第三步:在 Flashduty 中精细化处理 RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整体影响做进一步处理,可以在 Flashduty 的[告警处理 Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中配置。 -| 处理场景 | 配置方式 | -|----------|----------| -| 抑制重复告警 | 同一 `alert_key` 在 1 小时内只告警一次 | +| 处理场景 | 配置方式 | +| -------------- | ------------------------------------------------------------------------------ | +| 抑制重复告警 | 同一 `alert_key` 在 1 小时内只告警一次 | | 自定义告警标题 | 模板示例:`[RUM] [{{Labels.env}}] {{Labels.error_type}} - {{Labels.view_url}}` | -| 低影响错误降级 | 当 `labels.affected_users` < 5 时,将严重程度更新为 Info | +| 低影响错误降级 | 当 `labels.affected_users` < 5 时,将严重程度更新为 Info | ## 典型场景方案 @@ -119,6 +134,7 @@ RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整 | 告警分级 | P0:支付页面错误、崩溃;P1:商品详情页/购物车错误 | | 告警处理 | 抑制窗口:30 分钟;标题模板包含页面路径 | | 告警分派 | P0 → 短信+电话通知,P1 → IM 通知 | + SaaS 应用需要关注不同租户的体验差异。 @@ -129,6 +145,7 @@ RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整 | 告警分级 | P0:企业版租户错误(通过 `context.tenant.plan` 匹配);P1:核心功能页面错误 | | 告警处理 | 标题模板包含租户信息;低影响告警降级 | | 告警分派 | 按团队分配到不同协作空间 | + 内容型网站对可用性要求相对宽松,重点关注加载和渲染问题。 @@ -139,6 +156,7 @@ RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整 | 告警分级 | P0:崩溃;P1:首页/搜索页错误 | | 告警处理 | 抑制窗口:1 小时;影响用户数 < 10 的告警降级 | | 告警分派 | P0 → IM 通知,P1/P2 → 邮件通知 | + @@ -160,6 +178,7 @@ RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整 - **Flashduty Pipeline**:基于 Issue 的整体信息(影响用户数、错误数量等),适合做更全面的评估 建议在 RUM 侧设定基础优先级,在 Flashduty 侧做补充调整。 + 不会。如果不配置任何过滤规则和告警分级,所有 Error 仍然会聚合为 Issue 并以默认严重程度投递到 Flashduty。现有行为完全保持不变。 @@ -169,16 +188,32 @@ RUM 侧的告警分级基于单个 Error 的属性,如需基于 Issue 的整 ## 延伸阅读 - + 告警触发条件、自定义分级和数据过滤的完整配置说明 - + 在集成层对告警进行清洗、转换和过滤 - + 在协作空间层面聚合和抑制告警 - + 配置分派策略,将告警路由到正确的值班人员 diff --git a/zh/rum/error-tracking/issue-alerts.mdx b/zh/rum/error-tracking/issue-alerts.mdx index 5c98b7b..f44736b 100644 --- a/zh/rum/error-tracking/issue-alerts.mdx +++ b/zh/rum/error-tracking/issue-alerts.mdx @@ -15,38 +15,43 @@ Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue,帮助您优 ## 开启告警 - - 前往「应用详情」-「告警设置」页面 - - - 开启告警开关,选择将告警投递至多个协作空间 + + 前往「应用管理」,选择目标应用,点击左侧「告警设置」 + 开启告警开关,选择将告警投递至多个协作空间 告警的通知规则遵循协作空间下的分派策略,您可以为团队设定值班人员,在告警发生时分派给值班人 - 告警设置 + +告警设置 + -您必须开通 On-call 服务才能开启 Issue 告警。注意 On-call 服务按照活跃用户进行收费,但没有 License 的成员也可以接收告警通知,即使是免费版本也有基本的通知能力。 + 您必须开通 On-call 服务才能开启 Issue 告警。注意 On-call + 服务按照活跃用户进行收费,但没有 License + 的成员也可以接收告警通知,即使是免费版本也有基本的通知能力。 ## 告警触发条件 -| 触发条件 | 说明 | -|----------|------| -| **新的 Issue** | 错误事件导致新的 Issue 出现,会触发告警事件 | -| **Issue 更新** | 持续有错误事件合入一个未关闭(待处理、处理中)的 Issue,且距离上一个触发告警事件超过 24 小时,将会重新触发告警事件 | -| **Issue 重开** | 新的错误合入已关闭的 Issue,导致 Issue 被重新打开,即问题复现 | +| 触发条件 | 说明 | +| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **新的 Issue** | 错误事件导致新的 Issue 出现,会触发告警事件 | +| **Issue 更新** | 持续有错误事件合入一个未关闭(待处理、处理中)的 Issue,且距离上一个触发告警事件超过 24 小时,将会重新触发告警事件 | +| **Issue 重开** | 新的错误合入已关闭的 Issue,导致 Issue 被重新打开,即问题复现 | | **Issue 优先级升级** | 当高优先级的错误事件进入低优先级的 Issue 时,Issue 优先级会自动升级并触发新的告警事件。例如,一个 P2 级别的 Issue 收到匹配 P0 规则的错误,会升级为 P0 并触发告警 | -- Issue 触发的是一个告警事件,此告警事件将投递到协作空间 -- 是否触发告警通知取决于您在协作空间下的集成配置、降噪配置以及分派策略配置 -- 当 Issue 关闭时,系统会触发关闭类型的告警事件,其关联的故障可能会自动恢复 + - Issue 触发的是一个告警事件,此告警事件将投递到协作空间 - + 是否触发告警通知取决于您在协作空间下的集成配置、降噪配置以及分派策略配置 - 当 + Issue 关闭时,系统会触发关闭类型的告警事件,其关联的故障可能会自动恢复 ## 告警严重程度 @@ -70,6 +75,7 @@ Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue,帮助您优 | ≥70 分 | Critical(严重) | | ≥40 分 | Warning(警告) | | <40 分 | Info(提示) | + | 因素 | 评分规则 | @@ -93,31 +99,31 @@ Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue,帮助您优 每条分级规则包含以下要素: -| 要素 | 说明 | -|------|------| -| **规则名称** | 便于识别和管理的名称 | -| **匹配条件** | 基于 Error 属性的筛选条件,同一规则内多个条件为 AND 关系 | +| 要素 | 说明 | +| ------------ | ------------------------------------------------------------- | +| **规则名称** | 便于识别和管理的名称 | +| **匹配条件** | 基于 Error 属性的筛选条件,同一规则内多个条件为 AND 关系 | | **告警级别** | 匹配后设定的优先级:P0(Critical)/ P1(Warning)/ P2(Info) | 规则按优先级顺序匹配,首个匹配即生效。 #### 支持的匹配字段 -| 字段 | 说明 | 示例 | -|------|------|------| -| 用户 ID(`error.usr_id`) | 上报错误的用户标识 | `vip_001` | -| 用户邮箱(`error.usr_email`) | 用户邮箱地址 | `*@vip.com` | -| 错误类型(`error.error_type`) | 错误的类型分类 | `TypeError`、`SyntaxError` | -| 错误消息(`error.error_message`) | 错误的描述文本 | 包含 `Cannot read property` | -| 错误堆栈(`error.error_stack`) | 堆栈信息 | 包含 `undefined` | -| 页面 URL(`error.view_url`) | 错误发生的页面地址 | 包含 `/payment` | -| 环境(`error.env`) | 错误发生的环境 | `production`、`staging` | -| 版本(`error.version`) | 应用版本号 | `1.0.0` | -| 服务(`error.service`) | 错误所属的服务 | `payment` | -| 浏览器(`error.browser_name`) | 浏览器名称 | `Chrome` | -| 是否崩溃(`error.is_crash`) | 是否为崩溃错误 | `true` | -| 指纹(`error.fingerprint`) | 指纹信息 | `06375381216fe431` | -| 自定义字段(`context`) | 通过 context 上报的自定义属性,支持三层嵌套 | `context.user.level` | +| 字段 | 说明 | 示例 | +| --------------------------------- | ------------------------------------------- | --------------------------- | +| 用户 ID(`error.usr_id`) | 上报错误的用户标识 | `vip_001` | +| 用户邮箱(`error.usr_email`) | 用户邮箱地址 | `*@vip.com` | +| 错误类型(`error.error_type`) | 错误的类型分类 | `TypeError`、`SyntaxError` | +| 错误消息(`error.error_message`) | 错误的描述文本 | 包含 `Cannot read property` | +| 错误堆栈(`error.error_stack`) | 堆栈信息 | 包含 `undefined` | +| 页面 URL(`error.view_url`) | 错误发生的页面地址 | 包含 `/payment` | +| 环境(`error.env`) | 错误发生的环境 | `production`、`staging` | +| 版本(`error.version`) | 应用版本号 | `1.0.0` | +| 服务(`error.service`) | 错误所属的服务 | `payment` | +| 浏览器(`error.browser_name`) | 浏览器名称 | `Chrome` | +| 是否崩溃(`error.is_crash`) | 是否为崩溃错误 | `true` | +| 指纹(`error.fingerprint`) | 指纹信息 | `06375381216fe431` | +| 自定义字段(`context`) | 通过 context 上报的自定义属性,支持三层嵌套 | `context.user.level` | 匹配方式支持「包含」和「不包含」两种操作。 @@ -129,24 +135,29 @@ Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue,帮助您优 - 匹配条件:用户 ID 包含 `vip` - 告警级别:P0(Critical) + 支付页面是核心业务流程,相关错误需要优先处理: - 匹配条件:页面 URL 包含 `/payment` - 告警级别:P1(Warning) + 生产环境的崩溃需要立即响应: - 匹配条件:环境 包含 `production`,且 是否崩溃 包含 `true` - 告警级别:P0(Critical) + -- Issue 的优先级只升不降,确保重要问题不会被后续低优先级的错误降级 -- 如需根据 Issue 的影响范围(如影响用户数、错误数量等)调整优先级,请在 Flashduty 集成的[告警处理 Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中配置 + - Issue 的优先级只升不降,确保重要问题不会被后续低优先级的错误降级 - 如需根据 + Issue 的影响范围(如影响用户数、错误数量等)调整优先级,请在 Flashduty + 集成的[告警处理 + Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中配置 ## 数据过滤 @@ -155,43 +166,61 @@ Flashduty RUM 自动将 SDK 上报的错误事件聚合为 Issue,帮助您优 您可以在「告警设置」中添加过滤规则。每条规则可设置多个匹配条件,同一规则内的条件为 AND 关系。支持的匹配字段与[自定义告警分级](#自定义告警分级)一致。 -| 场景 | 示例规则 | -|------|----------| +| 场景 | 示例规则 | +| ------------------ | ----------------------------------- | | 排除第三方脚本错误 | 错误堆栈 包含 `cdn.third-party.com` | -| 排除已知无害错误 | 错误消息 包含 `ResizeObserver loop` | -| 排除调试页面错误 | 页面 URL 包含 `/debug` | +| 排除已知无害错误 | 错误消息 包含 `ResizeObserver loop` | +| 排除调试页面错误 | 页面 URL 包含 `/debug` | -- 被过滤的 Error 不会参与 Issue 聚合和告警,但数据仍然保留,可在查看器中通过筛选条件查看 -- 如果只是想暂时屏蔽某类告警但保留 Issue 数据,建议使用 Flashduty 告警处理 Pipeline 中的「告警丢弃」功能 + - 被过滤的 Error 不会参与 Issue + 聚合和告警,但数据仍然保留,可在查看器中通过筛选条件查看 - + 如果只是想暂时屏蔽某类告警但保留 Issue 数据,建议使用 Flashduty 告警处理 + Pipeline 中的「告警丢弃」功能 ## 与 Flashduty 协同 RUM 告警与 Flashduty 深度协同,形成完整的告警处理链路: -| 层级 | 配置位置 | 核心能力 | 适用场景 | -|------|----------|----------|----------| -| 数据过滤 | RUM 告警设置 | 过滤噪音 Error | 永久忽略第三方脚本错误、调试页面错误等 | -| 告警分级 | RUM 告警设置 | 根据 Error 属性设定优先级 | VIP 用户告警、核心页面告警等 | +| 层级 | 配置位置 | 核心能力 | 适用场景 | +| -------- | ------------------ | ------------------------------- | -------------------------------------- | +| 数据过滤 | RUM 告警设置 | 过滤噪音 Error | 永久忽略第三方脚本错误、调试页面错误等 | +| 告警分级 | RUM 告警设置 | 根据 Error 属性设定优先级 | VIP 用户告警、核心页面告警等 | | 告警处理 | Flashduty 集成配置 | 标题定制、优先级调整、丢弃/抑制 | 根据影响用户数调整级别、抑制重复告警等 | -| 告警分派 | Flashduty 协作空间 | 路由、值班排班、通知渠道 | 分派到不同团队、配置通知方式等 | +| 告警分派 | Flashduty 协作空间 | 路由、值班排班、通知渠道 | 分派到不同团队、配置通知方式等 | 您可以在 Flashduty 的[告警处理 Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 中进一步处理 RUM 告警,例如根据影响用户数调整告警级别、按时间窗口抑制重复告警、自定义告警标题格式等。 ## 延伸阅读 - + 典型场景配置方案,快速减少无效告警干扰 - + 在集成层对告警进行清洗、转换和过滤 - + 在协作空间层面聚合和抑制告警 - + 配置分派策略,将告警路由到正确的值班人员