跳转到主要内容
错误上报后可在异常追踪模块查看 Issue。在 Flashduty RUM 中,一个 Issue 是由一组相似错误组成的,这些错误通常与同一个 bug 相关。
Issue 列表
详细的聚合规则请参阅 异常聚合

Issue 信息概览

Issue 信息概览
Issue 浏览器中列出的每个条目包含以下信息:
信息项描述
错误类型和错误消息Issue 的核心标识信息
错误发生的文件路径定位错误来源
服务名称关联的服务
错误原因系统推断的可能根因
问题是否有复现标识已解决问题是否再次出现
首次和最后出现时间Issue 生命周期信息
发生次数图表随时间变化的趋势
所选时间段内的发生次数统计数据

Issue 状态

Issue 有 4 种状态,流转方式如下:
Issue 状态流转
状态说明
待处理新发现的问题,需要关注
处理中已确认并正在修复的问题
已解决问题已修复
已忽略无需处理的问题
问题复现相关流转逻辑请参阅 Issue 状态

筛选与排序

浏览器右上角显示时间轴,允许您显示在选定时间段内发生错误的 Issue。您可以:
  • 从下拉菜单中选择预设范围
  • 直接修改时间
  • 输入自然语言进行筛选

错误原因分类

Flashcat 在每次创建 Issue 时会为其添加错误发生可能产生的错误原因分类,帮助提升故障定位的效率。
错误原因说明
代码错误由代码缺陷导致的错误
非法对象访问代码访问了 null 或 undefined 对象
无效参数使用无效参数调用函数
网络错误服务器响应时间过长或网络速度慢
API 请求失败API 端点返回了错误状态码
未知错误无法定位该错误类型
当鼠标在错误原因分类上 hover 时,系统会结合 AI 能力进一步给出推断的根因和修复建议。

分类原理

系统采用两层分析机制对错误进行分类: 第一层:模式匹配 系统首先通过规则引擎按优先级依次检查错误类型和错误消息,首个匹配的规则决定分类结果:
检查顺序匹配条件分类结果
1错误消息包含 “Unexpected token … is not valid JSON”无效参数
2关联资源的 HTTP 状态码为 4xx 或 5xxAPI 请求失败
3错误类型包含 “Network” 或 “AbortError”网络错误
4错误类型包含 “Syntax”、“Reference”、“Range”、“URI” 或 “Eval”代码错误
5错误类型为 TypeError 且消息匹配空值访问模式(如 “Cannot read property of undefined”)非法对象访问
6错误消息匹配无效参数模式(如 “invalid argument”、“unexpected token”)无效参数
7错误消息包含 “API ERROR:” 或许可证相关错误API 请求失败
8错误消息包含网络连接相关关键词(如 “timeout”、“connection”、“dns”)网络错误
9以上均未匹配未知错误
第二层:AI 推断 当模式匹配结果为「未知错误」时,系统会调用 AI 模型进行深度分析。AI 模型会结合以下信息进行判断:
  • 错误消息:错误的描述文本
  • 堆栈信息:完整的调用堆栈
  • 平台类型:浏览器/JavaScript、Android/Kotlin/Java、iOS/Swift/Objective-C、Flutter/Dart、React Native、Unity/C# 等
AI 会输出错误分类和简要的原因解释(不超过 100 字)。推断结果在 Issue 卡片上以 hover 提示的形式展示,帮助您快速理解错误的根因。

问题复现

问题复现(Regression)指的是之前修复的 bug 再次出现。
问题复现
如果一个错误被标记为已解决,但在后续(version 不同)又产生了相同的错误,则该 Issue 的状态会从结束态重新打开,并标记为「问题复现」。

Issue 详情

Issue 列表支持两种查看模式:侧栏模式和全屏模式。默认以侧栏方式打开详情面板,您也可以点击展开按钮切换到全屏模式,获得更宽敞的查看空间和更完整的数据展示。 点击任何 Issue 可以打开详情面板,查看更多信息。
Issue 详情
面板上部显示 Issue 的基础信息,如状态、错误原因等。您还可了解 Issue 的生命周期:首次和最后出现日期、持续时间,以及时间内的错误发生次数(按照一定时间粒度聚合)。
在标签分布区块可按照各种维度查看该 Issue 下不同标签所占比重,从而快速判断问题影响范围,辅助定位根因。目前支持 view_namebrowser_nameversionenv 等标签。
默认展示当前 Issue 发生期间最近一次上报的错误信息作为错误样例,您也可通过导航条进行切换。
查看 Web 端错误的上下文信息和堆栈信息。如果上传过 SourceMap,您可以看到映射还原后的原始源码位置和代码片段。
错误堆栈
在「应用管理」-「源码管理」可查看已上传的源码信息,详见 源码映射
Native 平台(Android/iOS)的错误堆栈展示针对移动端特点进行了专门设计,提供以下能力:Pretty / Raw 模式切换
  • Pretty 模式:结构化展示堆栈信息,自动区分应用帧(app frames)和第三方帧(third-party frames),第三方帧默认折叠,突出显示您自己的代码
  • Raw 模式:展示原始堆栈文本,方便复制和在外部工具中分析
符号化状态如果已上传对应版本的符号文件(Android mapping 或 iOS dSYM),堆栈中的混淆地址会被自动还原为可读的函数名、文件名和行号。未符号化时,系统会提示您上传符号文件,并提供直达「源码管理」和上传工具的链接。线程堆栈(Threads)Native 崩溃通常涉及多个线程。线程面板展示崩溃时所有线程的堆栈信息,支持:
  • 查看线程总数和当前展示的线程数
  • 展开/折叠所有线程
  • 每个线程内独立区分应用帧和第三方帧,第三方帧可按需展开查看
  • 崩溃线程的堆栈会被优先展示
Binary Images(iOS)对于 iOS 崩溃,还可以查看崩溃时加载的 Binary Images(二进制镜像)列表,包含镜像名称、地址范围和 UUID 等信息,用于辅助离线符号化分析。详细的符号文件上传流程请参阅 源码映射
查看当前错误示例所属的 Session 事件总数,以及该异常发生前后用户的资源访问情况和操作情况。
当前最多展示包含当前 Error 事件在内的 20 条上下文信息,后续您可在 Session 查看器模块查看更多日志信息。
如果该会话已采集了回放数据,您可以直接点击「查看回放」按钮跳转到会话重放页面,从用户视角重现错误发生时的完整操作路径。
异常事件在上报时会携带一系列属性,您可在属性区块查看当前的 Session、视图、用户等各类信息,方便排查问题。

异常告警

在问题发生时立即发现它,让您有机会在问题变得严重之前主动识别和修复它。
异常告警配置
1

进入应用管理

选中应用卡片后进行编辑
2

开启告警

打开「告警」开关
3

选择协作空间

选择通知的协作空间
具体告警配置说明请参阅 Issue 告警

最佳实践

配置源码映射

便于在生产环境定位问题

添加用户信息

配置用户相关信息,提供更好的错误上下文

设置告警策略

为错误配置合理的协作空间和分派策略

定期错误分析

定期检查错误报告,发现潜在问题

团队协作

利用团队所有权功能确保问题能够快速分配给相关团队

监控回归

密切关注已解决问题的潜在回归

下一步

源码映射

配置源码映射

异常聚合

了解聚合机制

Issue 状态

管理 Issue 状态