Skip to content

前端监控指

  • 页面埋点
  • 性能监控
  • 异常监控

TODO: 怎么设计一个监控体系

页面埋点

  • PV / UV
  • 停留时长
  • 流量来源
  • 用户交互

手动埋点:自主选择需要监控的数据然后在相应的地方写入代码。灵活性很大,缺点是工作量较大,每个需要监控的地方都得插入代码。

无埋点:统计所有的事件并且定时上报。因为统计的是所有事件,所以还需要后期过滤出需要的数据。

性能监控

直接使用浏览器自带的 Performance API 来实现这个功能。

👇 performance.getEntriesByType('navigation')

包含了 网络传输 到 页面加载完成 相应的数据

异常监控

  • 代码报错
    • window.onerror 拦截报错
    • 该方法能拦截到大部分的详细报错信息,但是也有例外
    • 跨域的代码运行错误会显示 Script error. 对于这种情况我们需要给 script 标签添加 crossorigin 属性
    • 某些浏览器可能不会显示调用栈信息,这种情况可以通过 arguments.callee.caller 来做栈递归
  • 接口异常
    • 列举出出错的状态码。一旦出现此类的状态码就可以立即上报出错

👆 捕获的错误需要上传给服务器,通常可以通过 img 标签的 src 发起一个请求。