首页 帮助中心 听云App 性能指标

性能指标

概览

  • 响应时间

当前App选定时间段内应用总响应时间/请求次数(仅计算成功响应的请求)。

  • 崩溃率

当前App选定时间段内应用崩溃次数/启动次数。

  • 错误率

当前App选定时间段内应用错误次数/总请求次数。

  • 卡顿/ANR率

当前App选定时间段内应用发生ANR或卡顿设备数/总设备数。

  • 流量消耗

当前App选定时间段内应用下载字节数/请求次数。

  • 行业均值

当前App对应行业下的上一自然月各项指标数据聚合后的均值。

  • 指标评分

当前App选定时间段内的各项指标,当性能值≤行业10分位值时,为100分;当性能值>行业10分位值且<行业90分位值时,区间线性打分;当性能值≥行业90分位值时,为0分。

  • 综合评分

综合评分=0.25*响应时间分值+0.45*崩溃率分值+0.15*错误率分值+0.1*ANR率分值+0.05*流量消耗分值

情报汇总

  • 响应时间

当前App选定时间段内应用响应时间(总时间)的平均值随时间变化。

  • 活跃设备数

当前App选定时间段内每分钟的活跃设备数(针对分钟去重)。

  • HTTP响应时间

当前App选定时间段内HTTP应用响应时间最慢的五个主机。

  • HTTP响应地图

当前App选定时间段内以中国地图的形式展示各省份平均Http响应时间的性能图。

  • HTTP错误率/网络错误率

当前App选定时间段内以堆叠图展示当前App的HTTP错误率和网络错误率(错误率=错误次数/访问次数)。

崩溃

  • 崩溃数据汇总

当前App选定时间段内应用崩溃率(崩溃率=崩溃次数/启动次数)随时间变化情况。

  • 崩溃次数

当前Bug总共发生的次数。

  • 影响用户数

某种类型的崩溃发生所涉及的客户端数量。

  • Bug状态

编辑当前Bug的状态(已修复、未修复、已忽略、待验证)。

  • 崩溃堆栈

崩溃发生时的堆栈信息。

  • 崩溃轨迹

通过崩溃发生前的时间、类名、方法名、控件ID等综合分析还原崩溃发生前的用户操作。

  • 面包屑

用户可以在初始化后的任意代码中添加面包屑用以标记事件或者行动。

  • UserID

提供一个用户标识符(比如:用户id,邮箱地址),可以紧密跟踪指定用户。

  • dSYM/Mapping文件管理

提供自动上传dSYM/Mapping文件功能。

  • 用户自定义附加信息

可以在听云SDK启动后的任意位置添加10条100个字节自定义附加信息。

  • 上下文信息

崩溃发生时客户端的状态信息,如内存消耗、系统版本、剩余电量等。

  • 统计图表

当前Bug按照机型和操作系统区分的占比。

ANR/卡顿

  • ANR/卡顿实时走势

当前App选定时间段内应用ANR/卡顿率(卡顿率=卡顿次数/启动次数)。

  • ANR总数

当前App总共发生的ANR次数。

  • 影响用户数

某种类型的崩溃发生所涉及的客户端数量。

  • ANR/卡顿详情列表

列举选定时间内所有ANR/卡顿的相关信息(ID、崩溃信息、APP版本、时段、数量、占比、状态)。

  • UserID

提供一个用户标识符(比如:用户id,邮箱地址),可以紧密跟踪指定用户。

  • 堆栈

ANR发生时的堆栈信息。

  • 卡顿轨迹(iOS)

通过卡顿发生前的时间、类名、方法名、控件ID等综合分析还原崩溃发生前的用户操作。

  • 网络视图(iOS)

展现当前卡顿时间段内所有网络请求的瀑布图。

  • 用户自定义附加信息

可以在听云SDK启动后的任意位置添加10条100个字节自定义附加信息。

  • 上下文信息

崩溃发生时客户端的状态信息,如内存消耗、系统版本、剩余电量等。

  • 统计图表

当前Bug按照机型和操作系统区分的占比。

请求概览

  • 请求次数:当前选定时间段内,客户端发起请求的总次数。
  • 成功请求次数:响应码为 200 的请求次数。
  • 正常请求次数:成功请求次数减慢请求次数。
  • 错误请求次数:HTTP 错误(4xx、5xx)次数加 网络错误(请求超时、建联失败等)次数。
  • DNS 发生次数:实际发生 DNS 解析的次数。
  • TCP 发生次数:实际发生 TCP 建连的次数。
  • SSL 发生次数:实际发生 SSL 握手的次数。
  • 慢请求次数:满足慢请求阈值的请求次数。
  • 若下载字节数大于 50kb,则传输速率小于 10kb/s 的请求为慢请求。
  • 若下载字节数小于 50kb,则响应时间大于 2000 ms 的请求为慢请求。
  • 响应时间:客户端发起请求至请求完毕的时间。

  • 平均响应时间= 响应时间 / 成功请求次数

  • 客户端时间:客户端等待处理请求响应的耗时。
  • 平均客户端时间= 总客户端时间 / 成功请求次数

  • 网络时间:请求在网络上消耗的时间(排除客户端时间)。
  • 平均网络时间 =(响应时间– 客户端时间)/ 成功请求次数

  • DNS时间:客户端将域名转换为数字IP的时间。
  • 平均DNS时间= 总DNS耗时/ DNS 总发生次数

  • TCP时间:建立 TCP / IP 连接的时间。
  • 平均TCP时间= TCP 总耗时 / TCP 总发生次数

  • SSL时间:建立安全套接层(SSL)连接的消耗时间。
  • 平均SSL时间= SSL 总耗时 / SSL 总发生次数
  • 首包时间:从发送 HTTP 请求结束后,到收到服务器返回的第一个数据包的时间。
  • 平均首包时间= 总首包时间 / 成功请求次数

  • 剩余包时间:客户端接受服务器返回的非第一个数据包的消耗时间。
  • 平均剩余包时间= 总剩余包时间 / 成功请求次数

  • 吞吐率:平均每分钟的 HTTP 请求数量,单位为 RPM(Requests per minute)。

  • 吞吐率= 总请求数 / 时间(min)

  • 复用率:请求 Tcp 建联的复用策略,复用率越高表示请求的效率越高。
  • 复用率 = (1 - 建联次数)/ 总请求次数 * 100

  • 传输速率:选定时间段内,流量消耗与总响应时间的比值。
  • 传输速率 = 总流量消耗 / 总响应时间
  • HTTP 错误率:在选定时间段内,HTTP错误数量与总请求数量的比值(常见 HTTP 错误:4XX、5XX)。

  • 网络错误率:在选定时间段内,网络错误数量与请求数量的比值。

    响应码 错误类型 可能错误原因
    901 未知主机 DNS 解析的时候出错
    902 建连失败 连接服务器的时候出错
    903 连接超时 等待服务器超过响应时长
    904 客户端协议错误 网络协议错误,如:http 写成了 htt
    905 客户端已取消 进行网络连接时(下载),强行中断连接抛出的错误
    906 非法响应内容 请求内容和响应内容不一致
    907 要求 SSL 认证 SSL 证书校验时发生的异常
    908 SSL 证书错误 SSL 本地证书与服务端证书不一致
  • 网络延时:指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。

  • 丢包率:测试中所丢失数据包数量占所发送数据组的比率。

网络请求

  • 响应时间

从发送HTTP请求开始,到发送HTTP请求结束的时间。

  • DNS时间

将域名转换为数字IP的时间。

  • TCP建连次数

选定时间内进行TCP建连的次数。

  • TCP时间

建立TCP连接的时间。

  • SSL时间

建立安全套接层(SSL)连接的消耗时间。

  • 网络延时

既剩余包时间,接收服务器返回的非第一个数据包的时间。

  • 下载速度

平均每秒的下载数据量,下载速度=下载大小/接收耗时。

  • 传输数据量

选定时间内总的传输数据量(Byte或Kbsyte)。

  • 首包时间

从发送HTTP请求结束后,到收到服务器返回的第一个数据包的时间。

  • 请求地址

请求的URL地址。

  • 请求参数(需配置)

采集Headers参数、URL参数和Post参数(HttpClient)。

  • 响应时间耗时

下载数据所消耗的时间。

  • 下载大小

该请求的下载数据量。

  • 吞吐率

平均每分钟的请求数量。

  • 吞吐量

单个请求发生次数在全部请求中的占比,吞吐量=每个请求的发生次数/请求总数*100%。

  • APP版本

当前测试的APP版本号。

  • 接入方式

网络接入方式,如3G、4G等。

  • 访问方式

发送请求的方式,如Get和Post。

  • 网络协议

请求使用的网络协议,如HTTPS和HTTP。

  • DNS

DNS地址。

  • 主机

主机IP地址。

  • 慢请求

1、判断传输数据量是否大于50KB。
2、大于50KB,根据传输速度判断慢请求。规则为:速度小于10KB/s判定为慢请求。
3、小于等于50KB,根据响应时间判断慢请求。规则为:响应时间大于2000ms判定为慢请求。

  • 慢请求次数

超过健康标准的请求出现的总次数。

  • 慢速比

慢请求所占全部请求的比例,慢速比=慢请求次数/总请求次数*100%。

  • 健康请求(占比)

健康请求所占的比例,健康请求(占比)=健康请求次数/总请求次数*100%。

  • 客户端IP

设备的IP地址。

  • 服务器IP

发生慢请求时候建联的IP地址。

  • 响应时间分位值

当前选定时间段内的特征数据,如50分位,则表示50%的用户响应时间都处于该分位值范围以下。

  • CDN分析

从响应时间、错误率、网络速率三个维度对CDN厂商性能进行监控统计分析。

请求错误

  • 错误请求

错误请求的URL地址。

  • 网络错误

错误的简要描述,如网络错误错误连接超时等。

  • CDN厂商

发生错误信息时对应的CDN厂商信息。

  • HTTP错误

错误的简要描述,如HTTP错误404 Not Found等。

  • 错误次数

某个请求发生错误的总次数。

  • 请求总数

某个请求发生的总次数。

  • 错误率

错误率=错误次数/请求总数*100%

  • 操作系统

错误发生时所处的设备操作系统环境。

  • 应用版本

错误发生时应用的版本号。

  • 地域/运营商/接入方式

发生错误时设备所处的地域/运营商(如中国移动)/接入方式(如2G)环境。

  • Agent版本号

错误发生时嵌码SDK的版本号。

  • 设备型号

手机型号。

  • 客户端IP

设备的IP地址。

  • 服务器IP

发生错误时候建联的IP地址。

  • 错误数

请求发生错误的总次数(统计数据)。

  • 调用栈

发生错误时,发起网络请求的调用堆栈。

  • 响应头

服务器响应头。

  • 响应内容

服务器响应内容。

  • 请求总数发生

发生请求的总次数(统计数据)。

劫持分析

  • 劫持率

劫持率=劫持次数/访问次数

  • 劫持次数

域名被劫持的次数。

  • 域名IP

被劫持的域名IP。

  • 黑名单

基于大数据分析得出的劫持黑名单,访问时解析建连到黑名单则认为发生劫持。

  • 白名单

用户指定的某个域名的合法IP名单集,需要用户手动设置。

  • 劫持占比

劫持占比=劫持次数/该域名总的请求次数

  • 城市运营商接入方式

如福州市_ 中国电信_2G等信息。

WebView

  • 完全加载时间

从开始页面请求到页面渲染完成的时间,loadEventEnd – navigationStart。

  • 白屏时间

从打开页面到页面首次渲染消耗的时间,domLoading – navigationStart。

  • 首屏时间

App首屏内所有的元素呈现所花费时间,即页面加载完后判断图片是否在首屏高度内,找出加载最慢的一张(没有图片则以统计JS执行时间为首屏,即认为文字出现时间)。

  • 可交互时间

用户可开始进行正常操作的时间,即DomReady时间,domContentLoaded – navigationStart。

  • 慢加载占比

出现页面加载时间大于7秒的次数和成功访问页面次数的比值。

  • JS错误率

出现JS错误页面的次数和访问页面次数的比值。

  • HTTP错误率

出现HTTP错误页面的次数和访问页面次数的比值。

  • 网络错误率

出现网络错误页面的次数和访问页面次数的比值。

  • HTML加载时间

主HTML文件从DNS解析到加载完,且不包含排队时间和应用服务器响应时间,responsEnd -domainLookupStart。

  • DOM解析时间

将HTML代码解析成DOM树并获取和执行同步脚本的时间,domContentLoaded – responseEnd。

  • 页面渲染时间

资源加载的时间,loadEventEnd - domContentLoaded。

  • Stalled时间

得到要发出请求的指令,到请求可以发出的等待时间,requestStart - connectEnd + connectStart - domainLookupEnd + domainLookupStart - redirectEnd。

  • DNS时间

将指定域名解析成IP地址消耗的时间,domainLookupEnd - domainLookupStart。

  • TCP时间

建立TCP/IP连接消耗的时间,connectEnd - connectStart或secureConnectionStart - connectStart。

  • SSL时间

建立SSL连接消耗的时间,connectEnd - secureConnectionStart。

  • 首包时间

开始页面请求到开始接收到HTML代码的时间,responseStart - requestStart。

  • 剩余包时间

服务器开始响应到结束的时间,responseEnd - responseStart。

  • 文件大小

在删除内容编码之前的有效数据大小,encodedBodySize。

  • 文件传输大小

所获取资源的大小,包括响应头和有效数据,transferSize。

启动体验分析

  • 首次或冷启动时间

Android:Application.attachbaseContext()开始到MainActivity.onResume()结束。

iOS:main函数启动时间(SDK启动时间)到 FirstVC.viewDidAppear()结束。

  • 热启动时间

Android:Home键:Activity.onRestart()开始到Activity.onResume()结束
;Back键:Activity.onCreate()开始到Activity.onResume()结束。

iOS:applicationWillEnterForeground()开始到applicationDidBecomeActive()结束。

  • 初始化时间

Android:Application init,Application.attachbaseContext()开始到结束。

iOS:main函数启动时间(SDK启动时间)到applicationDelegate.didFinishLaunchingWithOptions()开始。

  • 构建时间

Android:MainActivity init,Application.attachbaseContext()结束到Application.onCreate()结束。

iOS:applicationDelegate.didFinishLaunchingWithOptions()开始到FirstVC.loadView()开始。

  • 页面加载时间

Android:MainActivity onCreate加onResume,Application.onCreate()结束到MainActivity.onResume()结束。

iOS首次或冷启动:FirstVC.loadView()开始到FirstVC.viewDidAppear()结束。

iOS热启动:applicationWillEnterForeground()开始到applicationDidBecomeActive()结束。

  • 慢启动

慢启动定义为启动时间大于阈值的启动,阈值默认为3000ms。

  • 应用准备时间

Android:Application.attachbaseContext()开始到结束。

  • 主页面初始化时间

Android:Application.attachbaseContext()结束到Application.onCreate()结束。

  • 视图填充时间

Android首次或冷启动:Application.onCreate()结束到MainActivity.onCreate()结束

Android热启动:Home键:Application.onCreate()结束到MainActivity.onRestart()结束;Back键:Application.onCreate()结束到MainActivity.onCreate()结束。

  • 交互准备时间

Android首次或冷启动:MainActivity.onCreate()结束到MainActivity.onResume()结束。

Android热启动:Home键:MainActivity.onRestart()结束到MainActivity.onResume()结束;Back键:MainActivity.onCreate()结束到MainActivity.onResume()结束。

  • 方法耗时

各个方法的开始时间到结束时间。

操作体验分析

  • 操作名称

用户执行操作的具体方法名称,iOS:类名+ 法名;Android: 名称 + 控件ID 。

  • 操作次数

用户执行该操作的总次数。

  • 所属页面

用户执行该操作所在页面名称,Android为:Activity或Fragment名称;iOS 为:VC的名称。

  • 操作耗时

用户执行该操作的总耗时(包含异步方法的执行时间)。从执行操作方法开始,到最后一个回到主线程的异步方法结束的时间。

  • 阻塞耗时

用户执行该操作过程中的主线程耗时(不包含异步方法的执行时间)。从执行操作方法开始,到操作方法结束的时间(主线程耗时)。

  • 可用性

用户执行该操作的可用操作次数占总操作次数的比值。可用操作次数/总操作次数。

  • 可用操作

除失败操作和崩溃操作以外的用户操作。总操作次数-失败操作次数-崩溃操作次数。

  • 流畅操作

用户执行该操作过程中,未发生异常的操作。

  • 慢操作

用户执行该操作过程中,操作耗时超过设定阈值的操作被定义为慢操作(可配置)。

  • 卡顿操作

用户执行该操作过程中,阻塞耗时超过设定阈值的操作被定义为卡顿操作(默认阈值4S,可配置)。

  • 失败操作

用户执行该操作过程中发生请求错误满足客户设置错误百分比阈值的操作(默认阈值100%)。

  • 崩溃操作

用户执行该操作过程中,发生崩溃的操作。

  • 流畅操作占比

流畅操作次数/总操作次数 。

  • 慢操作占比

慢操作次数/总操作次数 。

  • 卡顿操作占比

卡顿操作次数/总操作次数。

  • 崩溃操作占比

崩溃操作次数/总操作次数。

  • 失败操作占比

失败操作次数/总操作次数。

页面体验分析

  • 页面名称

用户可视范围内的页面名称,可以理解为“触发页面跳转”的操作名称,即用户执行了某一动作触发了页面跳转的事件,当前动作的名称会被标记为当前页面的名称。

  • 页面打开次数

当前页面打开的总次数。

  • 页面交互时间

页面打开至用户可以正常交互的时间。

  • 慢交互

交互时间超过既定阈值的页面,默认阈值1000ms,可配置。

  • 页面展现时间

页面打开至内容展现完毕的时间(包含网络耗时)。

  • 慢展现

展现时间超过既定阈值的页面,默认阈值5000ms,可配置。

  • 页面流畅性

用以衡量当前页面交互过程是否流畅。

页面流畅性=1-(慢交互次数/页面打开次数)

  • 页面完整性

用以衡量当前页面展现内容是否完整。

页面完整性=1-(慢展现次数/页面打开次数)

  • 视图名称

Activity名称或 ViewController 名称。

  • 视图打开次数

当前视图打开的总次数。

  • 视图交互时间

视图打开至用户可以正常交互的时间。

  • 慢交互

交互时间超过既定阈值的页面,默认阈值1000ms,可配置。

  • 视图展现时间

视图打开至内容展现完毕的时间(包含网络耗时)。

  • 慢展现

展现时间超过既定阈值的页面,默认阈值5000ms,可配置。

  • 视图流畅性

用以衡量当前视图交互过程是否流畅。

视图流畅性=1-(慢交互次数/视图打开次数)

  • 视图完整性

用以衡量当前视图展现内容是否完整。

视图完整性=1-(慢展现次数/视图打开次数)

用户行为分析

  • 用户总数

选定时间最后时间点统计的用户总数。

  • 新增用户数

选定时间段内新增用户数。

  • 活跃用户数

选定时间段内启动过至少一次应用的用户(去重)。

  • APP启动次数

选定时间段内App启动次数。

  • 异常数

选定时间段内发生崩溃或者卡顿的总次数。

  • 平均会话时长

选定时间段内App一次使用的平均时长。

  • 启动最慢页面

选定时间段内,访问一个页面加载时间最慢页面。

  • 访问次数最多页面

选定时间段内,用户访问次数最多的页面。

  • 停留时间最长页面

选定时间段内,单次访问页面,从加载成功到离开该页面时间最长的页面。

  • 离开率最高页面

选定时间段内,从该页面直接离开应用率最高的页面;(直接从该页面离开应用次数/从该页面跳转到其他页面或离开应用总数)。

  • 崩溃率最高页面

选定时间段内,发生崩溃比例最高的页面;(崩溃次数/该页面访问次数)。

  • ANR/卡顿率最高页面

选定时间段内,发生ANR/卡顿比例最高的页面;(发生ANR/卡顿次数/该页面访问次数)。

  • 页面转化率-离开率

离开率=从该页面直接离开应用的次数/从该页面离开总次数。

  • 页面转化率-转化率

(A->B)转化率=从A到B发生次数/从A页离开的总次数

  • 自定义事件

自定义事件:用户自定义希望进行监控的关键事件,如摇一摇、下单等;展示发生次数前10的事件信息。

使用率

  • 日活

以一个月为时间长度显示每天的活跃设备数。

  • 月活

以一年为时间长度显示每月的活跃设备数。