前端异常监控方案理论篇

目的

对前端线上代码错误进行排查,下降 JS Error 的错误量,增强h5在不一样手机的webview的兼容性,提高代码质量,优化用户体验。javascript

四个阶段html

采集

  1. 在index.html文件添加window.onerror全局监听。
  2. 可能出现异常的代码块添加try catch,如JSON.parse()等。
  3. Promise实例抛出异常捕获,如网络请求axios添加catch函数。
  4. 在必要的代码块添加正常的log,以便追踪数据的流转以及分析代码的运行顺序。

存储

将采集到的异常信息级别分为info,warn,error,统一存储在localstorage。前端

上报

接口:

后端配合提供上报接口:java

Methods:get
请求参数:ios

{
errorType: //错误级别info,warn,error
errorMsg: //错误信息
url: //出错的地址
row: //错误发生行
col: //错误发生列
time: //错误发生时间
ua: windw.navigator.userAgent
browser: //浏览器信息
osVersion: //客户端版本
machine: {
//尽可能详细的手机信息
},
remark: //备注、扩展字段
}web

策略:

  1. error日志实时上报。
  2. info或warn级别的先存在本地缓存,再10分钟为频率统一上报到服务端。
  3. 主动上报:在特定的可疑地方,实时上报必要信息

方式:

前端采起动态建立img标签,src为接口地址,并将全部错误信息拼接到地址后面。axios

分析

1.前期提供一个实时查看的监控控制台。
2.服务器定时任务天天凌晨将错误上报信息表统计出来,后期在运营后台添加一个错误报表界面。后端

注意事项

1.提供一个开关,能够随时控制是否错误上报。好比发现上报频率太高、字段信息太多、死循环等,能够暂时关闭上报功能。
2.线上的js代码是经过压缩、混淆的,采集到的信息不够精确,分析问题有必定局限性,可考虑Source Map处理,参考文章 http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html浏览器

相关文章
相关标签/搜索