概述
01业务背景及目的
一般的异常数据上报只支持简单的接口状态码是否异常等基础上报,对于某些核心字段,下发值缺失导致崩溃异常不能更精细的定位。为此,阿波罗移动端设计了此业务异常监控sdk,使前后端快速配合定位问题,及时监控捕捉异常。通过制定一套完整的流程对接口异常的情况进行智能化的处理和上报,以达到:
- 有接口异常就可以轻松的被捕获和上报到后台,期间无需开发,只需要做一些基础配置
- 同时异常接口的信息参数(请求参数、用户手机环境、返回参数等)完整被捕获,可以在后台中看到,帮助开发人员进行问题复现和问题解决。
- 定向对某些机型、用户、时间段进行下发数据监控
02可提供的能力
sdk工作流程及配置规范
01工作流程
通过在配置平台上的配置组合实现异常捕捉功能:第一个配置是接口开关规范,开关规范是使这套流程变得更加灵活,可以按照接口来开启是否要异常上报功能;第二个配置是定向监控规范,通过配置想要监控的参数定向获取符合条件的下发全量数据;第三个配置是接口规则配置规范,因为每一个接口的数据是完全不同的,按照这套接口配置规范,研发人员可以按照接口来配置需要校验的关键节点及数据类型等信息。开发人员按照规范配置完成后,将接口数据相关信息(入参和出参)传给本系统提供的接口中。本系统将通过规范的解析和接口数据进行双重校验,校验后如果发现异常进行异常上报,上报时会捕获当前的用户环境,如机型、系统型号等一同上报。最后开发人员可在上报后台看到异常信息,并且根据全面的信息参数进行问题排查和解决。
02流程图
校验异常主要流程如下:
03配置规范
1、开关的配置规范:
- 总开关配置:一键关闭所有的接口。
- 接口开关配置:每一个接口单独配置开启或关闭。
2、异常校验配置规范:
- 配置整体为一个json格式,方便解析和传输。
- 如需校验数据类型,使用type关键字。
- 如需校验数据的值,使用value关键字,如有value则强校验值。
- 如有层级校验关系,使用subItems关键字,来展示数据结构的层级关系。
规则中的关键字具体说明如下:
当接口开关和接口规则配置都已经在配置后台配置完成后,开发人员需要在调用接口完成的代码中调用本方案提供的api,并且传入接口入参和接口出参。
3、在上述功能基础上可以按需求增加<定向监控>判断能力
移动配置中配置定向过滤规范
{
"osVersion":"14.4/Android11",//系统版本
"pin":"xxxxxx",//用户标识
"functionId":"ccart",//接口名
"startTime":"2022-03-01 17:51:54",//开始时间
"endTime":"2022-03-01 18:51:54"//结束时间
…………
}
定向监控逻辑:
- 命中以上配置,不进行异常验证,进行全量数据上报
- 没有命中以上配置,则正常进行上述异常上报逻辑
04异常监控系统—校验能力示例
05异常监控系统—逻辑能力示例
性能验证
测试数据:接口数据量312kb,包含购物车接口中100+商品(单品、套装)校验配置包含条件校验、值校验、多值校验、类型校验、空校验等基本全覆盖校验。
结论:业务异常监控在正常使用中,对用户感知较小,对设备性能影响小。
接入业务方案例分享
时间:2021年11.11大促期间
案例一 主动发现问题:
在大促期间业务异常日志同时作为有效的监控手段,通过监控日志发现,购物车中的删除商品的接口一天内会出现4-5次的空车情况,属于个别异常原因,主动联系产品和服务端,推动排查问题原因,有效避免后期客诉问题。
案例二 快速定位问题:
在大促期间安卓个别机型中发现在订单详情点击去支付无法跳转到收银台页面,呈现出用户点击无反应的状态,因在大促期间线上服务端日志已关闭,前端通过业务异常日志进行查看,快速定位到问题的原因。