当前App选定时间段内应用总响应时间/请求次数(仅计算成功响应的请求)。
当前App选定时间段内应用崩溃次数/启动次数。
当前App选定时间段内应用错误次数/总请求次数。
当前App选定时间段内应用发生ANR或卡顿设备数/总设备数。
当前App选定时间段内应用下载字节数/请求次数。
当前App对应行业下的上一自然月各项指标数据聚合后的均值。
当前App选定时间段内的各项指标,当性能值≤行业10分位值时,为100分;当性能值>行业10分位值且<行业90分位值时,区间线性打分;当性能值≥行业90分位值时,为0分。
综合评分=0.25*响应时间分值+0.45*崩溃率分值+0.15*错误率分值+0.1*ANR率分值+0.05*流量消耗分值
当前App选定时间段内应用响应时间(总时间)的平均值随时间变化。
当前App选定时间段内每分钟的活跃设备数(针对分钟去重)。
当前App选定时间段内HTTP应用响应时间最慢的五个主机。
当前App选定时间段内以中国地图的形式展示各省份平均Http响应时间的性能图。
当前App选定时间段内以堆叠图展示当前App的HTTP错误率和网络错误率(错误率=错误次数/访问次数)。
当前App选定时间段内应用崩溃率(崩溃率=崩溃次数/启动次数)随时间变化情况。
当前Bug总共发生的次数。
某种类型的崩溃发生所涉及的客户端数量。
编辑当前Bug的状态(已修复、未修复、已忽略、待验证)。
崩溃发生时的堆栈信息。
通过崩溃发生前的时间、类名、方法名、控件ID等综合分析还原崩溃发生前的用户操作。
用户可以在初始化后的任意代码中添加面包屑用以标记事件或者行动。
提供一个用户标识符(比如:用户id,邮箱地址),可以紧密跟踪指定用户。
提供自动上传dSYM/Mapping文件功能。
可以在基调听云SDK启动后的任意位置添加10条100个字节自定义附加信息。
崩溃发生时客户端的状态信息,如内存消耗、系统版本、剩余电量等。
当前Bug按照机型和操作系统区分的占比。
当前App选定时间段内应用ANR/卡顿率(卡顿率=卡顿用户数/活跃用户数)。
当前App总共发生的ANR次数。
某种类型的崩溃发生所涉及的客户端数量。
列举选定时间内所有ANR/卡顿的相关信息(ID、崩溃信息、APP版本、时段、数量、占比、状态)。
提供一个用户标识符(比如:用户id,邮箱地址),可以紧密跟踪指定用户。
ANR发生时的堆栈信息。
通过卡顿发生前的时间、类名、方法名、控件ID等综合分析还原崩溃发生前的用户操作。
展现当前卡顿时间段内所有网络请求的瀑布图。
可以在基调听云SDK启动后的任意位置添加10条100个字节自定义附加信息。
崩溃发生时客户端的状态信息,如内存消耗、系统版本、剩余电量等。
当前Bug按照机型和操作系统区分的占比。
响应时间:客户端发起请求至请求完毕的时间。
平均响应时间= 响应时间 / 成功请求次数
平均客户端时间= 总客户端时间 / 成功请求次数
平均网络时间 =(响应时间– 客户端时间)/ 成功请求次数
平均DNS时间= 总DNS耗时/ DNS 总发生次数
平均TCP时间= TCP 总耗时 / TCP 总发生次数
平均首包时间= 总首包时间 / 成功请求次数
平均剩余包时间= 总剩余包时间 / 成功请求次数
吞吐率:平均每分钟的 HTTP 请求数量,单位为 RPM(Requests per minute)。
吞吐率= 总请求数 / 时间(min)
复用率 = (1 - 建连次数)/ 总请求次数 * 100
传输速率 = 总流量消耗 / 总响应时间
HTTP 错误率:在选定时间段内,HTTP错误数量与总请求数量的比值(常见 HTTP 错误:4XX、5XX)。
网络错误率:在选定时间段内,网络错误数量与请求数量的比值。
响应码 | 错误类型 | 可能错误原因 |
---|---|---|
901 | 未知主机 | DNS 解析的时候出错 |
902 | 建连失败 | 连接服务器的时候出错 |
903 | 连接超时 | 等待服务器超过响应时长 |
904 | 客户端协议错误 | 网络协议错误,如:http 写成了 htt |
905 | 客户端已取消 | 进行网络连接时(下载),强行中断连接抛出的错误 |
906 | 非法响应内容 | 请求内容和响应内容不一致 |
907 | 要求 SSL 认证 | SSL 证书校验时发生的异常 |
908 | SSL 证书错误 | SSL 本地证书与服务端证书不一致 |
网络延时:指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。
从发送HTTP请求开始,到发送HTTP请求结束的时间。
将域名转换为数字IP的时间。
选定时间内进行TCP建连的次数。
建立TCP连接的时间。
建立安全套接层(SSL)连接的消耗时间。
既剩余包时间,接收服务器返回的非第一个数据包的时间。
平均每秒的下载数据量,下载速度=下载大小/接收耗时。
选定时间内总的传输数据量(Byte或Kbsyte)。
从发送HTTP请求结束后,到收到服务器返回的第一个数据包的时间。
请求的URL地址。
采集Headers参数、URL参数和Post参数(HttpClient)。
下载数据所消耗的时间。
该请求的下载数据量。
平均每分钟的请求数量。
当前测试的APP版本号。
网络接入方式,如3G、4G等。
发送请求的方式,如Get和Post。
请求使用的网络协议,如HTTPS和HTTP。
DNS地址。
主机IP地址。
1、判断传输数据量是否大于50KB。
2、大于50KB,根据传输速度判断慢请求。规则为:速度小于10KB/s判定为慢请求。
3、小于等于50KB,根据响应时间判断慢请求。规则为:响应时间大于2000ms判定为慢请求。
超过健康标准的请求出现的总次数。
慢请求所占全部请求的比例,慢速比=慢请求次数/总请求次数*100%。
健康请求所占的比例,健康请求(占比)=健康请求次数/总请求次数*100%。
设备的IP地址。
发生慢请求时候建连的IP地址。
当前选定时间段内的特征数据,如50分位,则表示50%的用户响应时间都处于该分位值范围以下。
从响应时间、错误率、网络速率三个维度对CDN厂商性能进行监控统计分析。
错误请求的URL地址。
错误的简要描述,如网络错误错误连接超时等。
发生错误信息时对应的CDN厂商信息。
错误的简要描述,如HTTP错误404 Not Found等。
某个请求发生错误的总次数。
某个请求发生的总次数。
错误率=错误次数/请求总数*100%
错误发生时所处的设备操作系统环境。
错误发生时应用的版本号。
发生错误时设备所处的地域/运营商(如中国移动)/接入方式(如2G)环境。
错误发生时嵌码SDK的版本号。
手机型号。
设备的IP地址。
发生错误时候建连的IP地址。
请求发生错误的总次数(统计数据)。
发生错误时,发起网络请求的调用堆栈。
服务器响应头。
服务器响应内容。
发生请求的总次数(统计数据)。
劫持率=劫持次数/访问次数
域名被劫持的次数。
被劫持的域名IP。
基于大数据分析得出的劫持黑名单,访问时解析建连到黑名单则认为发生劫持。
用户指定的某个域名的合法IP名单集,需要用户手动设置。
劫持占比=劫持次数/该域名总的请求次数
如福州市_ 中国电信_2G等信息。
从开始页面请求到页面渲染完成的时间,loadEventEnd – navigationStart。
从打开页面到页面首次渲染消耗的时间,domLoading – navigationStart。
App首屏内所有的元素呈现所花费时间,即页面加载完后判断图片是否在首屏高度内,找出加载最慢的一张(没有图片则以统计JS执行时间为首屏,即认为文字出现时间)。
用户可开始进行正常操作的时间,即DomReady时间,domContentLoaded – navigationStart。
出现页面加载时间大于7秒的次数和成功访问页面次数的比值。
出现JS错误页面的次数和访问页面次数的比值。
出现HTTP错误页面的次数和访问页面次数的比值。
出现网络错误页面的次数和访问页面次数的比值。
主HTML文件从DNS解析到加载完,且不包含排队时间和应用服务器响应时间,responsEnd -domainLookupStart。
将HTML代码解析成DOM树并获取和执行同步脚本的时间,domContentLoaded – responseEnd。
资源加载的时间,loadEventEnd - domContentLoaded。
得到要发出请求的指令,到请求可以发出的等待时间,requestStart - connectEnd + connectStart - domainLookupEnd + domainLookupStart - redirectEnd。
将指定域名解析成IP地址消耗的时间,domainLookupEnd - domainLookupStart。
建立TCP/IP连接消耗的时间,connectEnd - connectStart或secureConnectionStart - connectStart。
建立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一次使用的平均时长。
选定时间段内,访问一个页面加载时间最慢页面。
选定时间段内,用户访问次数最多的页面。
选定时间段内,单次访问页面,从加载成功到离开该页面时间最长的页面。
选定时间段内,从该页面直接离开应用率最高的页面;(直接从该页面离开应用次数/从该页面跳转到其他页面或离开应用总数)。
选定时间段内,发生崩溃比例最高的页面;(崩溃次数/该页面访问次数)。
选定时间段内,发生ANR/卡顿比例最高的页面;(发生ANR/卡顿次数/该页面访问次数)。
离开率=从该页面直接离开应用的次数/从该页面离开总次数。
(A->B)转化率=从A到B发生次数/从A页离开的总次数
自定义事件:用户自定义希望进行监控的关键事件,如摇一摇、下单等;展示发生次数前10的事件信息。
以一个月为时间长度显示每天的活跃设备数。
以一年为时间长度显示每月的活跃设备数。