博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端异常监控实践
阅读量:7166 次
发布时间:2019-06-29

本文共 1263 字,大约阅读时间需要 4 分钟。

背景

之前写了一篇年终总结的文章,有些朋友对我们在做的监控比较感兴趣,特此写一篇文章来梳理我们的整体的一套思路给大家参考。

前端异常监控系统的开发其实并不复杂,开源实现方案也颇多,技术实现成本并不难,痛点有但是并不是都不能解决,根据我们的情况总结了一下:

  • 前端SDK,主要是用户行为追踪,错误拦截,上报策略,API设计。
  • 上报的日志实现实时查询。
  • 分级分层预警。
  • 日志分析策略。

前端SDK

用户行为追踪

捕获用户的操作路径,根据操作路径我们去还原用户的使用场景,来帮助我们快速定位问题的所在。

操作路径分为以下几个点:

  • 事件触发。根据业务场景,只截取了用户的点击(click/change)和拉动滚动条。
  • 浏览路径。这块分为2种情况,spa和多页面应用,多页面应用我们可以通过 referrer 来确认上一个页面的url。spa的页面我们是对路由进行函数进行监听来做到。

当然这块整体的数据我们会基于cookie和localstorage来存取数据。

异常

脚本通过window.onerror以及拦截angular和vue的handleError来获取。 ajax这块除了ajax报错信息之外,也会根据业务层面的需求拦截返回的错误(栗子:我们请求返回除200外都是错误,所以整体都会上报)。

异常这块其实坑还是蛮多的,不过市面上各位大大总结的够好了,大家可以看看各位大大的总结。

操作系统

这块就是整个系统的信息,以及浏览器的信息、ua等。

总结

sdk这块其实2个难点,一个是用户行为如何定义?另一个异常收集这块会有蛮多的坑要踩。 另一部分整体的上报策略,目前我们是对异常进行了分级,低级别的错误延迟并且合并上报,同一个点同一种错误去重上报。

日志收集

所有日志都打到nginx,并且nginx备份日志,请求代理到后面的node服务,node服务清洗数据后进行入库,这块有一个要注意的点,如果node服务被打死,整个数据就断掉了,所以这块我们有一个定时任务从nginx备份的日志里清洗出由于服务挂掉没有处理的请求。

为什么没有用到大家都比较爱使用的elk呢? 答:通过调研目前我们的量级其实还没有完全要上升到需要elk的层面,我们更倾向于一种可控的状态。

预警

预警服务采用分级策略,按照组织架构,高级别的异常上来后,一段时间没有处理,预警系统会触发向上汇总的策略,直到部门负责人。

展示分析

目前这块会相对薄弱一些,基本只分析了一个周期的项目情况。整个重心还是在错误的解决层面。

总结

前端sdk更偏重于前端的异常收集。整体的后端服务,其实是面向于所有的异常来做的,我们更倾向于给公司提供一套完善的日志系统(ps:目前我们团队的后端监控的数据也逐渐的上到该系统)。

最后希望感兴趣的同学加入我们团队email:liuqing@liluo.me(除前端外,我们也招python,爬虫,大数据), 也希望各位能给我们提些意见和建议,毕竟组内的同学们也是通过业余时间来把整体的方案完善,并且开发完成,还有很多需要提升的地方。

转载地址:http://kshwm.baihongyu.com/

你可能感兴趣的文章
vcenter6.7升级到vcenter6.7U1,Esxi6.7升级到Esxi6.7U1
查看>>
SpringMVC中的ContextLoaderListener设计困惑
查看>>
如何判断当前主机是物理机还是虚拟机?
查看>>
我的友情链接
查看>>
CSS3 @font-face
查看>>
linux内核之段页式管理初步
查看>>
[bit]整数二进制表示中1的个数
查看>>
PHP PDO->exec() 执行无返回结果集的 SQL 语句
查看>>
MicroPython教程之TPYBoard开发板DIY小型家庭气象站
查看>>
Python玩转单片机:从基础到进阶,几款主流的开发板大盘点!
查看>>
linux free命令详解
查看>>
redhat5在提示符前添加彩色标识
查看>>
MySQL explain (查看sql 执行顺序)
查看>>
Install EPEL Repo on a CentOS and RHEL 7.x
查看>>
js中2个等号与3个等号的区别
查看>>
SharedUserId 与 Android自定义Permission
查看>>
UICollectionView cell 的布局
查看>>
sqlite3 数据操作 修改
查看>>
TODO:Golang Linux进程退出说明
查看>>
cat >file << EOF
查看>>