指标接入指引
概述
Bugly专业版当前支持,崩溃,ANR,OOM/FOOM,FPS,挂起率,内存峰值,启动耗时等指标。不同指标的统计有所差异,主要分为两类指标:
- 一类是由上报个例统计异常率的指标,包含崩溃,ANR,OOM/FOOM。这类指标,往往分子取异常上报个例,分母取联网设备数(按设备ID去重)。
- 一类是独立采集数据统计,跟问题上报个数多少并不直接关联,包含FPS、挂起率、内存峰值以及启动。
崩溃,错误以及Android的ANR和OOM,默认全量开启监控,暂不支持采样。除此之外,卡顿,启动,内存,以及iOS平台的ANR和FOOM,默认关闭监控,需要用户主动开启监控,允许用户设置采样率。
在确认配置正常开启后,在数据总览,或者异常概览,指标分析页可以查看相关指标的数据。
数据总览
异常概览
崩溃、错误,以及Android平台的ANR和OOM指标,都可以通过概览页查看。
指标分析
iOS的ANR及FOOM,卡顿,内存峰值,以及启动耗时等指标,通过指标分析页查看。
问题列表
除了通过数据总览,异常概览和指标分析页分析指标数据外,崩溃,ANR,OOM/FOOM以及错误的指标还可以在问题列表中,进行自由分析。
崩溃
崩溃:即Crash,指应用停止正常运行并且退出。崩溃的指标包含设备崩溃率,次数崩溃率,以及人数崩溃率。
异常率的定义如下:
- 设备崩溃率 = 影响设备数 / 联网设备数。
- 次数崩溃率 = 发生次数 / 联网设备数 。
- 人数崩溃率 = 影响用户数 / 联网设备数 。
统计字段的定义:
- 影响设备数:发生崩溃的设备,按设备ID去重统计数量。
- 影响用户数:发生崩溃的用户,按用户ID去重统计数量。
- 联网设备数:联网设备,按设备ID去重统计数量。
产品绑定了生效中的资源包的情况下,只要Bugly SDK被正常初始化,且产品有生效中的资源包,即可正常上报。可以通过查看联网设备数来查看相关的上报情况。
怎么判断有没有正常接入崩溃监控?
- 第一步:接入阶段,模拟一个异常,检查是否有上报。
- 第二步:发布后,检查联网设备数,是否跟放量一致。
- 第三步:关注产品是否有欠费。产品欠费后,Bugly平台会停止崩溃上报。
ANR
ANR:应用在运行过程中,由于应用无响应导致被系统强制退出,计为一次ANR。
异常率的定义如下:
- 设备ANR率 = 影响设备数 / 联网设备数。
- 次数ANR率 = 发生次数 / 联网设备数 。
- 人数ANR率 = 影响用户数 / 联网设备数 。
统计字段的定义:
- 影响设备数:发生ANR的设备,按设备ID去重统计数量。
- 影响用户数:发生ANR的用户,按用户ID去重统计数量。
- 联网设备数:联网设备,按设备ID去重统计数量。
Android的ANR跟崩溃一样,只要Bugly SDK被正常初始化,且产品有生效中的资源包,即可正常上报。也就是Android的ANR监控当前不支持用户开关,默认是开启的。
iOS的ANR则另外还受配置控制,默认是不开启监控的。用户需要到 设置/SDK配置 中,创建一个配置任务或者修改已有的配置任务,打开ANR监控。配置的更多详情请参数《SDK配置使用指引》
- Android的ANR监控,只需要SDK正常初始化,产品包含生效中的资源包,即可正常上报。也就是Android的ANR监控当前不支持用户开关,默认是开启的。
- iOS的ANR监控,支持用户开关,在SDK初始化,为产品购买资源包后,需要创建配置任务,打开iOS的ANR监控。
OOM
Android平台上,OOM率包含以下三种类型:
- Java OOM率:进程Java内存使用超标导致的崩溃问题概率
- Native OOM率:进程native内存使用超标导致的崩溃问题概率
- FD OOM率:进程fd资源使用超标导致的崩溃问题概率
异常率的定义:
- 设备OOM率 = 影响设备数 / 联网设备数。
- 次数OOM率 = 发生次数 / 联网设备数 。
- 人数OOM率 = 影响用户数 / 联网设备数 。
统计字段的定义:
- 影响设备数:发生OOM的设备,按设备ID去重统计数量。
- 影响用户数:发生OOM的用户,按用户ID去重统计数量。
- 联网设备数:联网设备,按设备ID去重统计数量。
Android的OOM跟崩溃一样,只要Bugly SDK被正常初始化,且产品有生效中的资源包,即可正常上报。也就是Android的OOM监控当前不支持用户开关,默认是开启的。
FOOM
iOS平台,FOOM(Foreground Out Of Memory)指应用在前台因消耗内存过多引起系统强杀。FOOM 更多细节见《iOS FOOM》 。
异常率的定义如下:
- 设备FOOM率 = 影响设备数 / 联网设备数。
- 次数FOOM率 = 发生次数 / 联网设备数 。
- 人数FOOM率 = 影响用户数 / 联网设备数 。
统计字段的定义:
- 影响设备数:发生FOOM的设备,按设备ID去重统计数量。
- 影响用户数:发生FOOM的用户,按用户ID去重统计数量。
- 联网设备数:联网设备,按设备ID去重统计数量。
iOS平台的FOOM,默认不开启监控。用户需要到 设置/SDK配置 中,创建一个配置任务或者修改已有的配置任务,打开FOOM监控。配置的更多详情请参数《SDK配置使用指引》
错误
错误是指用户自定义的异常,通过Bugly SDK提供的接口上报到Bugly平台,详细见《自定义错误使用指引》 。
异常率的定义如下:
- 设备错误率 = 影响设备数 / 联网设备数。
- 次数错误率 = 发生次数 / 联网设备数 。
- 人数错误率 = 影响用户数 / 联网设备数 。
统计字段的定义:
- 影响设备数:上报错误的设备,按设备ID去重统计数量。
- 影响用户数:上报错误的用户,按用户ID去重统计数量。
- 联网设备数:联网设备,按设备ID去重统计数量。
跟崩溃一样,只要Bugly SDK被正常初始化,且产品有生效中的资源包,错误即可正常上报。
错误的上报完全由应用自行决定,由应用调用SDK的相关接口主动上报。因此如果发现错误指标没有数据,需要按以下步骤检查:
- Bugly SDK是否有被正常初始化。
- 应用是否有正确调用相关接口,在接入阶段可以自验证接口的调用。
- 产品是否有生效中的资源包。当产品欠费,或者没有购买资源包时,错误无法上报。
卡顿指标
卡顿指标包含FPS,以及挂起率,默认关闭(即不采集),需要用户通过创建配置任务主动开启。配置的更多详情请参数《SDK配置使用指引》
- FPS:帧率,在应用运行时,GPU和CPU合作可产生的图像的数量,计量单位是帧/秒(FramePerSecond,缩写FPS),通常是评估硬件性能与应用体验流畅度的指标。
- 挂起率:如果应用两帧之间的刷新延时超过200ms,则认为此时应用不能很好地响应用户的交互,累加到挂起时间中。一个设备的挂起率,指这个设备在一天中,总的挂起时间除以其前台总时长,单位是秒/小时。
有关卡顿指标的统计细节请查看《卡顿监控使用指引》 。
当卡顿指标没有数据时,请按以下步骤检查:
- Bugly SDK是否有被正常初始化。
- 是否打开配置开关,设置恰当的用户采样率。配置检查如下图所示:设置/SDK配置,检查配置任务中的卡顿指标项。
- 产品是否有生效中的资源包。当产品欠费,或者没有购买资源包时,卡顿指标无法上报。
内存峰值
内存峰值,描述的是应用一次运行期间,使用内存的最大值。
- 物理内存峰值:一次运行期间,应用使用的物理内存峰值,即 PSS 峰值。
- 虚拟内存峰值:一次运行期间,应用使用的虚拟内存峰值,即 VSS 峰值。
- Java 堆内存峰值:一次运行期间,应用所使用的 Java 堆内存峰值。
- 前台内存峰值:一次运行期间,应用在前台使用的内存峰值。
- 后台内存峰值:一次运行期间,应用在后台运使用的内存峰值。
当内存峰值没有数据时,请按以下步骤检查:
- Bugly SDK是否有被正常初始化。
- 是否打开配置开关,设置恰当的用户采样率。配置检查如下图所示:设置/SDK配置,检查配置任务中的内存峰值项。
- 产品是否有生效中的资源包。当产品欠费,或者没有购买资源包时,内存峰值无法上报。
启动耗时
启动监控的指标是启动耗时,包含冷启动耗时和温启动耗时,详细内容见《启动监控使用指引》
- 默认冷启动:从进程创建到首个Activity首帧绘制。
- 冷启动:从应用进程创建,到启动页完成首次渲染,业务可以自定义启动结束点。
- 温启动:进程已经创建的情况下,不存在active的Activity的情况下,从Activity的打开到页面完成首次渲染。
- 前后台切换:应用在后台挂起状态,再切前台。
Android平台,提供了 AppLaunchMonitor#reportAppFullLaunch 接口,允许用户自定义启动结束点。各应用的启动结束点意义不同,应用之间无法做横向比较。而默认冷启动,则取首个Activity首帧绘制为启动结束统计点,便于应用之间比较启动耗时。
当启动指标没有数据时,请按以下步骤检查:
- Bugly SDK是否有被正常初始化。
- 是否打开配置开关,设置恰当的用户采样率。配置检查如下图所示:设置/SDK配置,检查配置任务中的启动指标。
- 产品是否有生效中的资源包。当产品欠费,或者没有购买资源包时,启动指标无法上报。