You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
合作与生态
支持与服务
开发者
了解我们
导航

崩溃分析

更新时间:2023.05.18 17:58:39

火山引擎应用性能监控全链路版的App端监控提供了崩溃分析功能,支持收集与分析iOS与Android双端多种异常崩溃类型,帮助您更精准地解决问题。
崩溃分析提供了崩溃趋势分析、崩溃分布分析、异常崩溃列表和崩溃详情四个维度和视角的分析视图,方便您更全面的分析应用中不同的异常崩溃类型。

前提条件

筛选条件

您可以通过以下筛选条件进行数据筛选。
图片

  • Android系统支持的筛选维度:
    时间、崩溃类型、APP版本、崩溃详情、设备ID、issue新增状态、是否存在Hprof文件、是否OOM、前后台、系统版本、机型、APP小版本号、APM SDK版本、下载渠道、ROM信息、省份、使用时长、进程名、厂商、机型评分、解析情况、APP页面、issue状态、处理人、标签、自定义维度、PV自定义维度。
  • iOS系统支持的筛选维度:
    时间、崩溃类型、APP版本、崩溃详情、设备ID、issue新增状态、启动状态、有无MemoryGraph文件、GWPAsan类型、前后台、越狱状态、系统版本、机型、APP小版本号、APM SDK版本、下载渠道、省份、使用时长、机型评分、解析情况、APP页面、issue状态、处理人、标签、自定义维度、PV自定义维度。

崩溃趋势

崩溃趋势中展示了崩溃指标在筛选条件下的数据,指标数据的右侧可以查看与上个周期相比崩溃数据的变化。
图片
指标说明:

指标

说明

崩溃次数

崩溃发生的次数

崩溃率

崩溃次数/PV

崩溃人数

发生崩溃的用户数

崩溃用户比率

发生崩溃的用户数/UV

用户数

UV

崩溃分布

崩溃分布支持通过多维分析来了解崩溃的分布情况以定位问题。
图片

  • 悬停在分布图上可以查看当前分类的全称,以及在该指标类型中的占比。

  • 崩溃分布中支持选择崩溃数据和自定义崩溃维度。您可以切换不同的维度来查询崩溃分布。

    参数

    说明

    崩溃数据

    • 上报量
    • 用户量

    分布维度

    • 启动状态
    • 崩溃类型
    • 前后台
    • 越狱状态
    • 系统版本
    • 机型
    • APP版本
    • APP小版本号
    • APM SDK版本
    • 下载渠道
    • 省份
    • 使用时长
    • 机型评分
    • 解析情况
    • APP页面

异常崩溃列表

异常崩溃列表展示了同一类崩溃聚合后的数据,包括崩溃说明、崩溃类型、影响用户数、发生次数、崩溃率、最近发生时间、日志上报时间、状态、处理人。
图片

  • 崩溃说明:单击可以跳转到崩溃详情中查询更多崩崩溃信息。
  • 影响用户数/发生次数:数字后的图标可以预览趋势图,悬浮趋势图可以查看对应的时间。
  • 发生次数:数字后的图标可以预览趋势图,悬浮趋势图可以查看对应的时间。
  • 排序:列表默认按照影响用户数、发生次数、崩溃率降序排序。单击最近发生时间或日志上报时间,可以按照时间降序或者升序排序。
  • 下载:单击右上角下载按钮,下载前100条数据,以.xlsx的文件格式展示列表中的数据。
  • 设置:单击右上角设置按钮,可以自定义列表展示的列数据。除了默认的列数据,您还可以配置:同比发生次数、同比影响用户数、同比崩溃率、影响用户率、同比影响用户率、起止版本。

崩溃详情

在崩溃详情页面可以查询单次崩溃的各字段属性。

崩溃摘要

崩溃摘要中展示了issue标题、堆栈关键信息、最近上报时间、最近发生时间、首次发生时间、崩溃说明、崩溃次数、崩溃人数、崩溃率、崩溃用户比率,同时还支持配置issue的自定义标签,具体请参见标签管理

崩溃趋势

崩溃趋势展示了该issue的崩溃数和影响用户数的变化趋势。

图片

自动分析

自动分析是聚合崩溃分布的信息,让信息更聚焦。更多特征分布,请查看崩溃分布页面。

图片

崩溃分布

崩溃分布支持通过多维分析来了解issue在各维度上的分布情况。

图片

设置:单击右上角设置按钮配置其他维度,查看不同维度的分布情况,以定位问题。

Logcat词云

说明

iOS暂不支持此功能。

崩溃问题分析维度较多,Logcat日志文件保存了崩溃进程内程序运行的日志信息。在崩溃问题排查过程中,有时需要对大量Logcat日志进行逐行排查,比较浪费人力。词云功能可以通过对issue下日志进行自动化分析,挖掘出高频出现的日志片段,辅助分析崩溃问题。
在issue详情页切换到Logcat词云页签,可以看到以下分析报告示例。
图片
分析报告中日志按频率排序,文字颜色无特殊含义。
名词解释:

概念

含义

频率

该行日志脱敏处理后在全部Logcat日志文件中出现的次数占比

权重

结合内部经验积累,根据特定词进行动态加权计算,突出日志中出现的特定词

日志

Logcat日志中对单行日志进行脱敏等操作后生成的字符串

词云功能对泄漏、磁盘满、高频异常报错等导致的崩溃问题分析提供有效帮助。
问题说明:

问题类型

关键词举例

磁盘空间不足

SQLiteFullException、disk I/O error、ailed to open database等

通信相关

socket timeout、Broken pipe

fd相关

Too many open files、EMFILE、Bad file descriptor等

内存相关

GL error、mmap failed、ashmem_create_region等

页面历史聚合树

页面历史聚合树是对应用页面历史路径的聚合,展示当前issue的历史路径的聚合情况。崩溃的路径历史详细数据可以在现场数据下页面追踪中查看。

图片

  • 页面路径根据Activity生命周期方法记录还原出历史路径。
  • 历史路径中第一层为崩溃发生的页面,从上到下是页面路径的回溯,最多回溯10层。其中,每一层宽度表示当前路径所占百分比。
  • 页面路径中的节点名称包含Activity的类名称和生命周期方法全称,生命周期方法包含onCreate方法和onStart方法。
    • onCreate方法一般说明当前节点的Activity是新启动的页面
    • onStart方法一般说明当前节点的Activity是从其他页面返回
  • 聚合树支持通过筛选项筛选崩溃数据,页面至多选取100条崩溃数据聚合展示,如果数据过少可以增加时间范围筛选更多崩溃数据。
  • 聚合树中的每一个色块都支持双击展开当前路径,再次双击恢复初始状态。
  • 左上角的筛选框支持筛选崩溃发生的页面。

详细信息

在详细信息中,您可以查询单次crash的各字段属性。

图片

  • 追查:单击设备标识ID或UserID旁的追查,可跳转至单点追查以查询完整的上下文日志流。
  • 切换崩溃详情:通过右上角切换详情,可切换crash。

原始堆栈&Retrace

如果未上传符号表,展示的是原始堆栈,即客户端上传的原始日志中的堆栈信息;如果已上传符号表,展示的是解析后的- Retrace,即经过符号化之后的堆栈。

  • 如果符号表或解析有误,可以重新上传符号表或者在Retrace的界面单击重试Retrace
  • 卡死问题发生时会分析线程的锁等待关系。如存在锁等待关系,会显示在Retrace中。
    图片
  • 如果开启了GWPAsan采样,Retrace中可以查看GWPAsan类型和堆栈。
    图片

    注意

    开启GWPAsan可能会增加崩溃率,请谨慎斟酌。

符号表

您可以在这里手动上传符号表。
图片

现场数据

现场数据包括了崩溃时的存储数据信息、上报的自定义字段属性、最近打开的页面。

  • 存储数据:展示了发生崩溃时的存储信息
    图片
  • 自定义数据:展示上报的自定义字段的属性
    图片
  • 页面追踪:展示崩溃前后的页面动作
    图片

Native信息

说明

iOS暂不支持此功能。

Native信息包含每次crash发生时,Native的Maps详情列表、Maps智能归类、FD归类、进程状态列表、线程状态列表。
图片

ANR_INFO

说明

iOS暂不支持此功能。

ANR_INFO上报并展示ANR发生时processName、tag、shortMsg、longMsg、Reason、Load、Android time、CPU usage等信息。
图片

调度时序图

说明

iOS暂不支持此功能。

调度时序图以时序图的形式展示消息调度耗时与错误的情况,包括了Wall Time、CPU Time等信息,并通过不同颜色标识错误节点、长耗时节点。
图片
展开消息后,如果要收起消息,请先取消勾选仅显示长耗时消息,然后勾选仅显示长耗时消息

跟踪日志

说明

iOS暂不支持此功能。

跟踪日志里展示了crash发生前后的日志流,包括进程:线程信息、日志级别、日志详情内容,并支持检索筛选。
图片

崩溃信息

说明

Android暂不支持此功能。

不同的崩溃类型展示的崩溃信息有所不同。

崩溃类型

展示模块

说明

崩溃

详细信息

展示崩溃的一些具体信息:崩溃类型、崩溃原因等。

寄存器

崩溃发生时的寄存器信息,默认不会采集。可以在SDK上报配置页面崩溃分析 > 是否开启寄存器分析配置开启采集上报(语言类异常不会上报)。

栈内存

崩溃发生时的栈内存信息,默认不会采集。可以在SDK上报配置页面崩溃分析 > 是否开启栈内存分析配置开启采集上报(语言类异常不会上报)。

Dealloc堆栈

记录Zombie对象释放时的堆栈,在开启线上Zombie监控功能之后,当发生Zombie问题时,会上报该信息。

卡死

-

展示应用退出前的卡死时长。

OOM崩溃

-

展示应用退出前的内存变化趋势。

自定义日志

自定义日志支持回捞、上报自定义的日志内容,包括进程:线程信息、日志级别、日志详情内容,并支持检索筛选。

图片

文件下载

文件下载支持下载文件,包括原始崩溃信息、自定义文件等。