Flashduty Docs
中文EnglishRoadmapAPI官网控制台
中文EnglishRoadmapAPI官网控制台
  1. 异常追踪
  • 简介
  • On-call
    • 快速开始
      • 快速开始
      • 常见问题
      • 产品对比
    • 故障管理
      • 什么是故障
      • 检索与查看故障
      • 处理与更新故障
      • 升级与分派故障
      • 自定义字段
      • 自定义操作
      • 了解降噪过程
      • 了解历史故障
      • 了解新奇故障
    • 配置On-call
      • 协作空间管理
      • 多种方式接入告警
      • 配置路由规则
      • 配置标签增强
      • 配置告警降噪
      • 配置分派策略
      • 故障静默与抑制
      • 配置值班规则
      • 配置通知模板
      • 配置服务日历
      • 配置个人信息
      • 配置过滤条件
      • 通知机器人
      • 告警处理 pipeline
    • 高级功能
      • 引用变量
      • 动态分派
      • 分析数据
    • 集成引导
      • 告警集成
        • 邮件 Email 集成指引
        • 夜莺 Flashcat 集成指引
        • Prometheus 集成指引
        • 标准告警事件集成指引
        • Grafana 集成指引
        • Zabbix 集成指引
        • Uptime Kuma 集成指引
        • 阿里云 ARMS 集成指引
        • 阿里云监控 CM 事件集成指引
        • 阿里云监控 CM 指标集成指引
        • 阿里云 SLS 集成指引
        • AWS CloudWatch 集成指引
        • Azure Monitor 集成指引
        • 百度云监控 BCM 集成指引
        • 华为云监控 CES 集成指引
        • 腾讯云 CLS 集成指引
        • 腾讯云监控 CM 集成指引
        • 腾讯云 Event Bridge 集成指引
        • Influxdata 集成指引
        • Open Falcon 集成指引
        • Pagerduty 集成指引
        • 蓝鲸智云集成指引
        • OceanBase 集成指引
        • Graylog 集成指引
        • Skywalking 集成指引
        • Sentry 集成指引
        • 监控宝告警集成指引
        • AWS EventBridge 集成指引
        • Dynatrace 集成指引
        • 华为云 LTS 集成指引
        • GoogleCloud 集成指引
        • Splunk 集成指引
        • AppDynamics 集成指引
        • SolarWinds 集成指引
        • 火山引擎CM 指标集成指引
        • 火山引擎CM 事件集成指引
        • 火山引擎日志服务 TLS 集成指引
        • Opmanager 告警事件
        • Meraki 告警事件
        • 天翼云告警集成
        • 观测云告警事件
        • zilliz 告警事件
        • 华为云 APM 告警事件
        • zstack 告警事件
        • Keep 告警集成指引
        • ElastAlert2 告警集成
      • 即时消息
        • 飞书 Lark 集成指引
        • 钉钉 Dingtalk 集成指引
        • 企业微信 Wecom 集成指引
        • Slack 集成指引
        • Microsoft Teams 集成指引
      • 单点登录
        • Authing 集成指引
        • Keycloak 集成指引
        • OpenLDAP 集成指引
      • Webhooks
        • 告警 webhook
        • 故障 webhook
        • 自定义操作
      • 变更集成
        • 标准变更事件集成指引
  • RUM
    • 快速开始
      • 入门介绍
      • 快速开始
      • 常见问题
    • 应用管理
      • 应用管理
      • SDK接入
      • 高级配置
      • 分析看板
    • 性能监控
      • 概览
      • 指标上报
      • 性能分析
      • 诊断优化
    • 异常追踪
      • 概览
      • 异常上报
      • 异常查看
      • 源码映射
      • 异常聚合
      • Issue状态
      • Issue告警
    • 其他
      • 术语说明
      • 数据收集
      • 数据安全
  • 平台功能
    • 团队和成员
    • 了解权限设计
    • 配置单点登录
  • 服务协议
    • 服务条款
    • 用户协议/隐私政策
    • SLA承诺
    • 数据安全
  1. 异常追踪

异常上报

Flashduty RUM 异常上报#

概述#

本文档介绍异常类型、捕获机制、手动上报方法、React 集成以及上报的异常数据结构定义。

异常类型#

Flashduty RUM 可以监控以下类型的异常:

JavaScript 异常#

包括代码语法错误、运行时异常和未处理的 Promise 异常等。这些问题可能导致页面功能失效,严重影响用户体验。

网络异常#

监控与后端服务或第三方 API 的通信问题:
XHR/Fetch 请求失败
请求超时
跨域(CORS)错误
HTTP 4xx/5xx 状态码

资源加载异常#

监控网页资源加载失败的情况:
图片加载失败
脚本加载失败
样式表加载失败
字体文件加载失败

自定义异常#

除了自动捕获的异常外,您还可以使用 RUM SDK 手动上报自定义异常,用于跟踪业务逻辑错误等特定问题。

上报方式#

自动错误捕获#

Flashduty RUM SDK 自动捕获以下类型的浏览器错误:
未捕获的异常: 运行时抛出的 JavaScript 异常(如 TypeError、ReferenceError)。
未处理的 Promise 拒绝: 未被 .catch() 处理的 Promise 错误。
网络错误: XHR 或 Fetch 请求失败(如 4xx、5xx 状态码或网络中断)。
React 渲染错误: React 组件渲染期间的异常(需配合错误边界)。
提示
自动捕获的错误默认包含堆栈跟踪、错误消息和来源信息。
来自浏览器扩展或第三方脚本的错误(如 network 来源)会被过滤,避免数据污染。

手动错误上报#

通过 addError API,您可以手动上报已处理的异常、自定义错误或其他未被自动捕获的错误。手动上报适合以下场景:
记录业务逻辑中的已处理错误。
附加上下文信息(如用户 ID、页面状态)以便问题排查。
监控第三方服务或异步操作的异常。

示例:上报自定义错误#

示例:上报网络错误#

示例:上报已处理异常#

React 错误边界集成#

Flashduty RUM 支持通过 React 错误边界捕获组件渲染错误,并将错误信息上报。您可以在 componentDidCatch 中调用 addError API,附加组件堆栈信息以便调试。

示例:React 错误边界#

使用方式#

错误数据结构#

每条错误数据包含以下属性,用于描述错误详情和上下文:
属性类型描述
error.sourcestring错误来源(如 console、network、custom、source、report)。
error.typestring错误类型或错误码(如 TypeError、NetworkError)。
error.messagestring简洁的可读性强的错误消息。
error.stackstring错误堆栈跟踪或补充信息。
error.causesArray提供额外上下文的关联错误列表(可选)。
contextObject自定义上下文信息(如页面状态、用户 ID),通过 addError 传入。

错误过滤与配置#

为确保错误数据的准确性和相关性,Flashduty RUM 应用以下过滤规则:
默认过滤:
仅处理 source 为 custom、source、report 或 console 的错误。
忽略来自浏览器扩展、第三方脚本或 network 来源的无关错误。
堆栈要求: 错误必须包含堆栈跟踪信息,否则可能被忽略。
自定义过滤:
使用 beforeSend 回调自定义错误处理逻辑,过滤或修改错误数据。

示例:自定义错误过滤#

常见问题与最佳实践#

常见问题#

1.
为什么某些错误未被聚合?
确认堆栈跟踪是否完整,或自定义指纹是否冲突。
检查 sourcemap 是否正确上传,若未上传,堆栈可能无法正确解析。
2.
如何减少第三方脚本错误噪音?
使用 beforeSend 回调过滤特定错误来源或消息。
示例:
3.
自定义聚合无效怎么办?
确保 fingerprint 属性正确设置,且值为字符串。
检查 beforeSend 回调是否被正确调用。

最佳实践#

1.
丰富上下文信息:
在 addError 中附加业务相关上下文(如用户 ID、操作类型),便于问题定位。
示例:{ userId: "12345", action: "submit_form" }。
2.
优化错误边界:
为关键 React 组件配置错误边界,确保渲染错误被捕获。
记录组件名称和版本,便于追踪问题。
3.
控制错误量:
使用采样率或 beforeSend 过滤低价值错误,避免数据过载。
优先监控影响用户体验的关键错误。
4.
分析与可视化:
在「分析看板」 - 「异常分析」Tab 可查看错误数据趋势和分布。
在看板中查看不同错误分类下的错误排行,解决重点异常问题。

下一步#

查看异常

添加官方技术支持微信

在这里,获得使用上的任何帮助,快速上手FlashDuty

微信扫码交流
上一页
概览
下一页
异常查看
Built with