- 1 开始使用CrashSight
- 2 异常概览
- 3 版本趋势
- 4 崩溃分析、ANR分析、错误分析
- 5 OOM 分析
- 6 高级搜索
- 7 异常配置
- 8 产品设置
CrashSight页面使用指南
1 开始使用CrashSight
1.1 注册账户
访问CrashSight官网,点击右上角的“登录”选项,跳转至登录页。推荐邮箱注册/手机号注册,同时支持QQ、微信等第三方登录方式。请选择您适合的最佳方式进行注册。
注册并登录完成后,点击账户名下拉菜单中的“计费账户”进入账户管理界面。
每个账号都会默认绑定一个个人计费账户,在初次进入账户管理界面时,您可以为自己的计费账户命名。CrashSight按MAU(Mounthly Active User)计费,即一个月的上报按设备去重后的数量(CrashSight识别设备的方式可参考Device ID)。点击“立即充值”按钮,即可为您的账户充值。
“账户概览”页签展示了您账户余额的使用情况,您可以查看按月或者按项目来查看使用详情,还可以查看历史交易记录。
点击“关联项目”页签,您可以查看与您的账户关联的项目,这些项目会使用您的账户余额。
在“成员管理”页签中,您可以点击“邀请新成员”,通过分享链接的方式为您的计费账户添加成员。普通成员仅可以查看“账户概览”中的信息,将成员设为管理员后,他可以使用您的个人计费账户创建项目。
1.2 创建项目
访问CrashSight官网,点击右上角的“登录”选项,登录您的账户。登录完成后将自动跳转至“我的产品”页。如果您已经登录,点击您的用户名,即可跳转至“我的产品”页。 点击“申请创建项目”按钮,根据提示填写您的项目信息,即可创建一个CrashSight项目。 在“我的产品”页中,您还可以访问我们准备的Demo项目。
1.3 接入SDK
从“我的产品”页单击进入您的项目,选择左侧选项卡中的“接入引导”。 “接入引导”已经自动识别了您接入的平台。选择您的引擎,然后跟随页面中显示的三个步骤,即可完成一次简单的接入。
我们强烈推荐您从“接入引导”开始接入CrashSight SDK。如果您需要更加详细的指引或参考信息,可以访问CrashSight帮助文档。
2 异常概览
在“异常概览”中,您可以查看当前项目的大盘统计数据。您可先查看头部数据来确认项目中各类异常的发生情况,然后从时间(趋势图)、时段内影响设备数最多的问题(每小时影响设备TOP问题、每日影响设备TOP问题)以及应用版本、系统版本、设备机型(排行榜)来多维度分析您项目面临的问题。
2.1 头部数据
头部数据位于异常概览的最顶部,直观反映了当天该项目的崩溃、ANR(仅Android)、错误上报数据。右上方的选项卡可以调节展示的数据,共有三种数据可供选择:
1、今日设备异常率。(今日设备异常率=今日发生异常的设备数/今日启动的总设备数)
2、发生次数。(此处指今日该类异常发生的次数)
3、影响设备数(此处指今日发生该类异常的设备数量)
头部数据展示标签还兼具异常概览的总开关的作用,切换选中的异常类型,即可控制趋势图、每小时影响设备TOP问题、排行榜、每日影响设备TOP问题的展示内容。
2.2 趋势图
趋势图按时间顺序展示问题的发生情况,您可以使用头部数据的展示标签来切换趋势图显示的问题类型。 您可以选择是否为模拟器(默认模拟器+真机)、版本(默认全版本)、时间(默认今天),对趋势图的数据进行筛选。 您可以勾选“开启对比”,对特定版本、特定时间段的数据进行对比。对比功能支持小时级对比和日级对比两种模式。 在浏览某一天的数据(例如时间选择“今天”),或者开启小时级对比时,您可以选择“按小时”或“累计”的统计维度。选择“按小时”,图中每个点表示一个小时内的问题数据。 选择“累计”,图中每个点表示从当天0点到该时间点的所有问题数据。 趋势图右侧可以选择需要展示的数据,这些数据的计算方式如下:
名称 | 计算方式 |
---|---|
设备崩溃率 | 发生问题的设备数/启动的设备数 |
次数崩溃率 | 问题发生次数/启动次数 |
发生次数 | 问题发生的次数 |
影响设备数 | 发生问题的设备数量 |
启动次数 | 联网上报的启动次数 |
联网设备数 | 触发联网的设备数 |
2.3 每小时影响设备TOP问题
这里展示了一个小时内影响设备数最多的问题,您可以使用头部数据的展示标签来切换显示的问题类型。在选项卡中可以切换TOP数量、时间范围和版本。
2.4 排行榜
排行榜中展示了一段时间内应用版本、系统版本和设备型号维度的Top 5,您可以使用头部数据的展示标签来切换显示的问题类型。排行榜支持切换时间段,按版本号筛选。 可选的排行维度有影响设备数、设备崩溃率、联网设备数。 点击标题旁边的按钮即可下载对应排行榜的xlsx文件,内含Top 100数据。
2.5 每日影响设备TOP问题
这里展示了一天内影响设备数最多的问题,您可以使用头部数据的展示标签来切换显示的问题类型。在选项卡中可以切换TOP数量、时间范围和版本。在最右侧的一栏可以变更问题的处理状态。 开启增加问题过滤条件功能,可以按问题标签和/或问题处理状态筛选问题。 可筛选匹配到系统退出关键词的问题。 右侧的“下载数据”按钮可以以xlsx格式下载TOP问题数据。
3 版本趋势
在版本趋势页中,您可以选择一个异常类型的一种指标进行时间轴分析。 版本趋势共有两种模式,“时段内Top N联网设备版本”模式下,将自动帮您查询异常量最高的Top N问题。您可以设置时间段及Top N的值。 “自定义对比”模式下,您可以自行配置您需要查看的版本,以及为每个版本单独配置对比起始时间。 下方的表格中列举了详细数值,您还可以点击“下载数据”按钮将表格数据以xlsx格式保存到本地。
4 崩溃分析、ANR分析、错误分析
崩溃分析、ANR分析、错误分析的查看方式较为相似,本章的4.1 问题列表、4.2 问题详情节中将介绍它们通用的查看方法。4.3 崩溃分析、4.4 ANR分析节将介绍崩溃分析和ANR分析的独有功能。
4.1 问题列表
选择“崩溃分析”/“ANR分析”/“错误分析”页签即可进入对应问题列表。问题列表列举了所有该类型的问题,您可以提供页面上方的输入框来配置筛选,可用的筛选项有版本、上报时间、处理状态、是否关联缺陷单、异常类型、问题处理人、指定版本的新增问题、指定时间段内的新增问题、问题ID或异常名。如果这些筛选条件不能满足您的需求,您可以点击下方的“高级搜索”链接,跳转至高级搜索页来执行更复杂的筛选。
此外,您还可以勾选“开启对比查询”来划定两个筛选范围,并查看它们的补集或交集。
下方的列表显示了所有通过筛选的异常问题。CrashSight会自动将问题聚类,列表中每一行代表发生原因相同的一类问题。鼠标移至问题上,单击“快速预览”,即可快速查看该问题的详情。
点击“进入问题详情”,跳转至问题详情。
点击右侧“状态变更”,可以设置问题处理人和问题处理状态。
点击“创建缺陷单“,即可快速提单。此功能需要在缺陷平台管理配置配置完成后才可使用。
点击下方“添加标签”,可为问题添加标签。标签常用于标注问题的某些特征,例如,已知的发生原因(“FD溢出”)、发生问题的范围(“体验服”、“华为专属崩溃”)、发生问题的模块(“libc”、“更新模块”)或者仅仅是一个提示(“紧急!”)。添加的标签可在标签管理中查看和管理。
列表标题栏中提供了“数据下载”按钮,可以将所有问题转换为xlsx表格下载到本地。
4.1.1 聚类规则
CrashSight会将发生原因相同的上报归入一类,这个过程被称为聚类。CrashSight进行问题聚类的步骤是:
- 判断问题的每一行堆栈是否为应用堆栈行。
- 从所有堆栈行中,挑出数行作为关键行。挑选关键行时优先应用堆栈行,有时也会将错误消息作为关键行。
- 将拥有相同关键行的问题归入一类。
根据问题类型的不同,判断应用堆栈行的方法,以及挑选关键行的方法是不一样的。以下是具体的方法:
4.1.1.1 Android Java崩溃、ANR
Android Java崩溃和ANR的判定方法相同。
判断应用堆栈行的方法:
堆栈中包含bundleID,或者堆栈以com.开头但不以android.、java.、dalvik.、javax.、junit.、org.apache.http.、org.json.、org.w3c.、org.xml.、org.xmlpull.、UnityEngine、com.unity3d.开头
挑选关键行的方法: 按堆栈顺序优先取应用行,没有应用行后按顺序取系统行,最多取三行,以及错误消息
4.1.1.2 Android native崩溃
判断应用堆栈行的方法: 1.堆栈中包含bundleID 2.路径包含/data/data/、app-lib 3.so名字不包含libc.so、libdvm.so、libskia.so、libnvddk_2d_v2.so、libnvwsi.so、libskia.so、libjavacore.so、libc.so、libandroid_runtime.so、app_process且路径不包含/system/且库名包含.so
挑选关键行的方法:
- 无native应用堆栈行、无java应用堆栈行: 4行native堆栈 + 1行java堆栈
- 无native应用堆栈行、有java应用堆栈行: 1行native堆栈 + 3行java应用堆栈
- 有native应用堆栈行: 2行native应用堆栈
- 有native应用堆栈行、第一行java为native方法(包含Native Method): 2行native应用堆栈 + 第一行java堆栈
注:对于Android native崩溃,堆栈行中的地址信息参与聚类。
4.1.1.3 iOS崩溃
判断应用堆栈行的方法:
- 如果进程名不为空,模块名等于进程名视为应用堆栈行
- 如果进程名为空,堆栈不包含main,或者不是最后3行,则视为应用堆栈行
挑选关键行的方法:
- 有大于两行的应用行,则取三行应用行,以及错误消息
- 不足三行应用行且有应用行,则取应用行和应用行的前后堆栈,最多五行,以及错误消息
- 无应用行,取堆栈前的五行,以及错误消息
注:对于iOS崩溃,聚类时不考虑堆栈行中的地址信息。
4.1.1.4 Windows崩溃
判断应用堆栈行的方法:
- 模块路径不包含“windows”或者“system”
挑选关键行的方法:
- 有大于两行的应用行,则取三行应用行,以及异常名
- 不足三行应用行,按堆栈顺序优先取应用行,没有应用行后按顺序取系统行,最多取三行,以及异常名
注:对于Windows崩溃,聚类时不考虑堆栈行中的地址信息。
4.1.1.5 错误
错误的聚类不进行应用堆栈行的挑选。Android错误使用异常消息、异常名以及全部堆栈作为关键行;iOS错误使用异常名以及全部堆栈作为关键行;Windows错误使用异常消息、异常名以及全部堆栈作为关键行。
4.2 问题详情
问题详情展示了一类问题的详细信息。页面最上方展示了该类问题的问题ID、异常名、首次上报异常消息、首次上报出错堆栈、发生次数以及影响设备数。您还可以在这里变更问题处理状态和快速提单。
4.2.1 版本信息
第二栏展示了该问题分类的详细信息。“版本信息”列举了各版本发生该问题的情况。
4.2.2 上报趋势
“上报趋势”按时间展示该问题发生次数和影响设备数。您可以选择特定的版本和时间跨度来进一步分析上报趋势。
4.2.3 设备信息
“设备信息”根据各类机型指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。
4.2.4 用户行为
“用户行为”根据各类用户行为指标展示该问题发生的比例。您还可以提供上方的筛选条件框进行进一步搜索。
4.2.5 自定义数据
“自定义数据”根据自定义关键字展示该问题发生的比例。为了使用这个功能,您必须先配置自定义字段分析及展示功能。您还可以提供上方的筛选条件框进行进一步搜索。
4.2.6 上报详情
上报详情区域默认展示最近一次上报的详细信息。如果您需要查看更多上报的详细信息,可以点击“查看更多记录”。
“复制本条上报的链接”可用于将本条上报分享给项目成员。如果您需要将上报信息分享给非项目成员,可以使用“生成匿名访问链接”,该链接不会暴露您项目的其它信息。
4.2.7 出错堆栈
“出错堆栈”选项卡展示了问题的出错堆栈。通常情况下,native崩溃堆栈需要使用符号表进行还原,上传符号表请参考符号表使用处理相关说明。新上报的崩溃会自动开始还原,如果您在崩溃上报后才补充上传了符号表,请点击“重试还原堆栈”来手动触发还原。
4.2.8 跟踪数据
“跟踪数据”展示了当前问题的一些详细数据,它包含如下部分:
(1)“基础数据”包含了设备的一些状态参数。
(2)“自定义数据”是由您配置的键值对,配置方法可参考添加自定义数据(unity)和添加自定义数据(unreal)。您还可以在此处设置快捷展示字段,这样它们就能直接显示在上报详情区域。
(3)“附件信息”中extraMessage.txt是回调返回的文本信息,配置方法可参考设置回调(unity)和设置回调(unreal)。
(4)“客户端上报log”是上报的日志附件,上传方式可以参考设置上传日志回调(unity)和设置日志上传回调(unreal)
4.2.9 跟踪日志
“跟踪日志”中显示了系统日志和用户自定义日志。切换到“System Log”时,显示的是系统日志,由于系统限制,此功能仅Android端可用。
切换到“Custom Log”时,显示的是用户自定义日志。您可用参考添加自定义日志(unity)和添加自定义日志(unreal)来使用此功能。
4.2.10 同设备/用户最近上报
“同设备/用户最近上报”展示了当前发生问题的设备或用户在3天内的所有上报,您可以据此分析特定用户或设备的行为。
4.3 崩溃分析
4.3.1 问题重分类预览
“问题重分类预览”提供了问题重新分类的功能。CrashSight默认以堆栈前两行作为问题分类依据,如果您对CrashSight的自动问题分类不满意,您可以在这个选项卡中配置需要跳过的堆栈关键词,以及参与问题分类的堆栈行数,通过调整这些参数来实现更精确的分类。
4.3.2 符号表
“符号表”显示了当前崩溃的堆栈还原需要使用的符号表,您可以查看符号表对应的模块名,以及它们的上传状态。"
4.3.3 崩溃线程寄存器信息
“崩溃线程寄存器信息”显示了崩溃发生时,崩溃线程的寄存器的值。
4.3.4 加载模块信息
“加载模块信息”显示了崩溃发生时,各加载段的信息。
4.3.5 FD信息
“FD信息”显示了崩溃发生时使用的FD信息。FD已进行分类,您可以查看各类FD的占比。此功能仅Android可用,需要CrashSight SDK 4.2.17或以上版本,使用时请咨询CrashSight开发组。
4.4 ANR分析
4.4.1 ANR Message
此处展示了CrashSight收集到的ANR Message。
4.4.2 ANR Trace
此处展示了ANR发生时dump的堆栈信息。
5 OOM 分析
5.1 推测内存使用量
CrashSight使用应用退出前的最后3秒内收集的内存使用数据,拟合一个线性模型来推测出退出时刻的内存使用量。假设“t”为崩溃发生的秒数,“t - 1”为崩溃发生前的一秒,以此类推。MemoryUsaget 表示设备在“t”时刻的内存使用量。
5.2 OOM 判定规则
iOS的OOM判定规则如下:
6 高级搜索
在高级搜索页中,您可以按各种搜索维度进行问题查询。搜索维度的含义可以参考搜索维度。
您还可以针对特定用户/设备进行分析。切换到“搜索指定用户/设备的上报消息”,输入您想查询的用户ID/设备ID,即可得到该用户/设备的所有上报记录。您还可以切换到时间轴视图,更直观地检视该用户/设备的行为。
7 异常配置
在“异常配置”中,您可以管理本项目的异常处理相关的配置,包括告警配置、标签管理、符号表管理、缺陷平台管理配置、用户ID备注配置。
7.1 告警配置
这里可以配置告警规则。您可按需要配置告警的触发条件以及通知方式。您最多可为一个项目配置20条不同的告警规则。
添加告警规则的配置面板如下,您只需根据提示填写即可完成告警规则的添加,需要注意的是监控时间粒度一栏,它有两方面影响: (1)监控计算的触发频率,例如1小时就是每个整点小时才会计算一次是否达到了告警条件,而不是一达到条件就告警 (2)监控的窗口大小,比如配1小时那么后面的告警条件就是1小时内达到多少次,配置5分钟就是5分钟达到多少次
7.2 标签配置
这里可以查看您为问题添加的标签,并可以重命名或删除标签。标签常用于标注问题的某些特征,例如,已知的发生原因(“FD溢出”)、发生问题的范围(“体验服”、“华为专属崩溃”)、发生问题的模块名(“libc”、“更新模块”)或者仅仅是一个提示(“紧急!”)。设置标签的方法详见问题列表。
7.3 符号表管理
此处可查看该项目的符号表。上传符号表请参考符号表使用处理相关说明。
7.4 缺陷管理平台配置
此处可将项目绑定至tapd.cn或Jira。绑定至tapd.cn需要提供API账号、API密钥和Workspace ID,绑定至Jira需要提供Jira账号电子邮箱、JiraApiToken、BaseUrl。
7.5 用户ID备注配置
此处可对特定用户ID设置备注,设置方法请点击“查看备注表格式说明”查看。
8 产品设置
在“产品设置”中,您可以查看和修改本项目的产品相关设置,包括产品信息、成员管理、版本管理、删除产品、变更记录。
8.1 产品信息
此处展示了产品的一些基本信息。您可以在这里修改产品名称、产品图标和产品描述。您还可以在此处配置SDK启动状态,通过这个功能可以随时禁用CrashSight SDK,以便及时应对可能存在的风险。
8.2 成员管理
此处可以管理产品成员。您可以在此处邀请、更新、删除成员。邀请成员有两种方式:点击“邀请新成员”生成邀请链接,新成员登录后点击链接即可加入项目。
点击“角色”一栏的下拉菜单,可以修改成员的权限。各成员的权限如下:
角色 | 查看个人隐私信息的权限 | 查看大盘统计页面权限 | 异常配置权限 | 产品设置权限 | 查看上报内容的权限 |
---|---|---|---|---|---|
管理员 | √ | √ | √ | √ | √ |
管理员(数据合规受限) | × | √ | √ | √ | √ |
开发人员 | √ | √ | × | × | √ |
普通成员(数据合规受限) | × | √ | × | × | √ |
运营人员 | √ | √ | × | × | √ |
受限查看人员 | × | × | × | × | √ |
注:查看个人隐私信息的权限指的是查看UserID、DeviceID等精确到用户个人的信息的权限。
点击“操作”一栏的删除按钮,即可删除成员。
点击表格左侧的复选框,可批量管理成员。
8.3 版本管理
此处可以查看产品所有版本号,并可配置隐藏版本。 隐藏的版本不再显示在版本筛选框中,同时,对应的版本会停止初始化和上报。
左上角的下拉菜单切换到“隐藏的版本”,即可查看隐藏的版本,并重新显示它们。
8.4 删除产品
点击按钮可删除本产品。
警告:删除产品后,本产品的所有数据将被彻底删除,不可查看且不可恢复,操作前请仔细确认。
8.5 变更记录
此处显示了本产品的操作记录。
操作记录的说明如下表所示。
操作类型 | 操作模块 | 操作内容 | 对应页面操作 |
---|---|---|---|
用户操作 | 产品设置 | 修改产品信息 | 产品设置-产品信息-保存 |
用户操作 | 产品设置 | 删除产品 | 产品设置-删除产品 |
用户操作 | 产品设置 | Set SDK Disabled Status | Setting-Version Management-Hide-Also disable SDK initialization and reporting |
用户操作 | 云控策略配置 | 编辑云控策略 | 异常配置-SDK端云控功能配置-编辑-确定 |
用户操作 | 云控策略配置 | 新增云控策略 | 异常配置-SDK端云控功能配置-新建配置 |
用户操作 | 云控策略配置 | 删除云控策略 | 异常配置-SDK端云控功能配置-编辑-删除配置 |
用户操作 | 云控策略配置 | 修改云控策略优先级 | 异常配置-SDK端云控功能配置 |
用户操作 | 标签管理 | 添加issue标签 | 崩溃/错误/.. 分析 - 添加标签 |
用户操作 | 标签管理 | 删除issue标签 | 崩溃/错误/.. 分析 |
用户操作 | 标签管理 | 添加app标签 | 异常配置-标签管理-新建标签 |
用户操作 | 标签管理 | 删除app标签 | 异常配置-标签管理-删除 |
用户操作 | 标签管理 | 修改app标签 | 异常配置-标签管理-重命名 |
用户操作 | 成员管理 | 删除成员 | 产品设置-成员管理-删除 |
用户操作 | 成员管理 | 修改成员权限 | 产品设置-成员管理-角色 |
用户操作 | 成员管理 | 通过企业微信名添加成员 | 产品设置-成员管理-通过企业微信名添加成员 |
用户操作 | 成员管理 | 修改成员权限层级 | 产品设置-成员管理-权限层级 |
用户操作 | 成员管理 | 邀请新成员 | 产品设置-成员管理-邀请新成员 |
用户操作 | 特征分析 | 规则优先级变更 | 特征分析-特征规则管理-显示优先级编辑 |
用户操作 | 特征分析 | 编辑规则 | 特征分析-特征规则管理-编辑/关闭 |
用户操作 | 特征分析 | 新增规则 | 特征分析-特征规则管理-新增特征配置 |
用户操作 | 特征分析 | 删除规则 | 特征分析-特征规则管理-更多-删除规则 |
用户操作 | 告警配置 | 新增告警配置 | 异常配置-告警配置-新增告警规则 |
用户操作 | 告警配置 | 修改告警配置 | 异常配置-告警配置-编辑-保存 |
用户操作 | 告警配置 | 删除告警配置 | 异常配置-告警配置-编辑-删除规则 |
用户操作 | Bug提单 | 人工提缺陷单 | 崩溃/错误/.. 分析 - 创建缺陷单 |
用户操作 | Bug提单 | 解绑缺陷单 | 崩溃/错误/.. 分析 - 解绑缺陷单 |
用户操作 | 版本管理 | 展示版本(异常上报生效) | 产品设置-版本管理-隐藏的版本-显示-同时开启异常上报、运营统计-确定 |
用户操作 | 版本管理 | 隐藏版本(异常上报生效) | 产品设置-版本管理-显示的版本-隐藏-确定 |
用户操作 | 版本管理 | 展示版本(异常上报不生效) | 产品设置-版本管理-隐藏的版本-显示-确定 |
用户操作 | 版本管理 | 隐藏版本(异常上报不生效) | 产品设置-版本管理-显示的版本-隐藏-同时关闭异常上报、运营统计-确定 |