移动端接口监控指标

app目前现状

目前app只有一些埋点操作,还有一些上传日志的相关措施,但是没有队app的接口进行相应的监控,这个对于一点出现的问题不容易分析其原因?举个例子,目前来说,就算有日志上报,也不能很好地定位到问题,如果某个接口出现了访问不到,报了超时的日志,这个时候其实是不好定位的,除非真的有一些很明确的操作,类似,1003(dns解析不到)等错误,但是有可能也是弱网的情况下,所以我们需要收集的指标应该不单单上传error而已,这也就是为什么需要采集某些接口数据上报,达到之后分析,排查问题的一个原因!
导致接口请求失败的因素

Snip20200907_25.png

里面大致包含两种可能因素

  • 硬性且不可改善因素
  • 1.用户手动对iOS对app网络层访问权限无情剥削(控制不可访问该应用、强制飞行模式、无网络链接等)--------采取适当的方式提示,目前app应用中有此项措施
  • 2.路由器故障(这个连提示都无法提示)
    尚且可以改善的因素
  • 蜂窝或者Wifi信号的强弱(尝试手机信号格数)
  • 运营商局部节点存在障碍
  • DNS 解析问题
  • 业务服务器故障或者接口响应慢(并发性,代码层都有可能)
  • 数据库服务器 (数据服务器出现问题,或者业务服务器去访问数据库服务器的时候,慢查询导致超时)
    对于这两种大概因素,不可改善的只能尝试提示引导,重启路由器或者更换4G,或者去到环境好点的网络空间等,而对于另外可以改善的因素,通过网络监控库对接口数据上传,待有数据分析之后方能给出相应的措施,下面的措施只是大概一种处理思路
    网络库针对失败情况的处理措施
    前面说到过,为了提高网络请求成功率,需要建立监控体系,使得可以收集到足够的数据,这样才能有效发现导致网络失败的原因,从而解决问题,下面先尝试的给出几种措施先:
    手段1.https 请求失败时候,重新发起一次http请求(防止ssl错误,可以配置1~3次)。
    手段2:手段1失败之后尝试将域名更改为ip直连,通过配置直连ip来控制重试次数。(URI 不变,Host改为ip,避免dns解析错误,但是需要运维人员配置好公司的服务器支持ip直连)。

流程图大概如下:


Snip20200907_26.png

HTTPS请求:涉及到ssl过程,也就是涉及到非对称加密和对称加密过程,过程复杂,需要消耗的时间较长


Snip20200907_30.png

Snip20200908_31.png

Snip20200908_2.png

HTTP请求:少了ssl过程,加快响应过程
IP直连:直接去掉了DNS解析的过程,更快

数据包的大概流程如下

Snip20200908_3.png

网络请求成功率因素

  • 适当的超时设置
  • 接口请求集中度
  • 接口数据体积
  • 统计的指标参数
  • 状态码,网络响应时间,HTTP与HTTPS的DNS解析,TCP握手,SSL,网络信号强度,ping时间
参数key 参数含义
ti 单词请求的唯一标识id
rip 重定向ip
ress 返回包大小
reqs 请求包大小
rdsize 实际下载大小
osize 原始文件大小(字节)
omd5 原始md5信息
oip 原始ip
dsize 下载成功文件的大小
dmd5 下载成功文件的md5信息
ddata 返回包
cty mimeType
*wtt 响应报文首字节到达的时间
*ttt 请求总耗时
*state 请求结果:success,failure,cancel
*sslt ssl的时间
*sreq 请求开始时间
*signal 信号强度
*sdt 从客户端发送htp请求到服务器所消耗的时间
*sc 状态码
*rurl 重定向url
*rcvt 客户端从开始接收数据到接收完所有数据的时间
*pd ping域名的响应时间
*ourl 原始url
*ope 运营商
*ns 网络类型
*etp 错误类型(1网络错误,2http错误,3业务错误)
*eres 响应结束时间
*ed 错误描述
*ec 错误码
*dnst 域名解析时间
*dBm 无线信号的强度单位
*cnnt 与服务器建立tcp链接需要的时间
*cmd 接口描述
*apn 当前接入点名称(wifi,cmwap)
*airplane 是否飞行模式

*标明字段意思是需要上报的数据,其他的可选,因为公司目前没有专门的移动平台监控,所以目前这些字段通过json字符串上传到阿里云中

统计时机:请求接口失败之后上传数据

某些参数解释

dbm是无线信号的强度单位。

信号强度

-30dBm 极好 这是可实现的最大信号强度,适用于任何一种使用情景

-50dBm 极好 此极好的信号强度适于各种网络使用情形

-65dBm 非常好 建议为智能手机和平板电脑提供支持

-67dBm 非常好 此信号强度对于网络电话和流媒体视频的使用是足够的

-70 dBm 可接受 该等级是确保实现稳定的数据包传输的最低信号强度要求,对于网页冲浪和收发邮件的使用是足够的

-80 dBm 不良 实现基本连接,但数据包传输不稳定

-90 dBm 非常差 大多都是噪音,抑制大多数功能的实现

- 100 dBm 最差  全是噪音

后端响应错误码

-1 未知错误

-1000 错误URL

-1001 超时

 -1002 不支持URL

-1003 找不到主机,DNS解析错误

-1004 无法连接到主机

-1103 数据长度超过最大值

-1005 网络连接丢失

-1006DNS查询失败

-1007 HTTP重定向太多

-1008资源不可用

-1009 未连接到互联网的NSURL错误

-1010 重定向到不存在的位置

-1011 服务器响应错误

-1012 用户取消身份验证

-1014 0字节资源

-1015无法解码原始数据

-1016无法解码内容数据

-1017无法解析响应

-1100 文件不存在

-1101 文件目录

-1102 没有权限读取文件

-1200 安全连接失败

-1201 服务器证书错误日期

-1202 服务器证书有未知的根

-1204 服务器证书无效

-1205 客户端证书拒绝

-1206 客户端证书要求

-2000 无法从网络加载

-3000 无法创建文件

-3001 无法打开文件

-3002 无法关闭文件

-3003 无法写入文件

-3004 无法删除文件

-3005 无法写入文件

-3006 下载解码失败中

-3007 下载解码失败
Snip20200907_29.png

现在操作:
目前打算统计的接口有登录接口和进入课堂前https请求的接口:
待补充

将来操作:

  • 统一网络库网络库
  • 网络统计模块
  • 网络诊断模块
  • HTTPDNS
  • 弱网检测模块( Facebook 的弱网检测)

你可能感兴趣的:(移动端接口监控指标)