前言
- 监控不会,线上嗝屁,赶紧记录下。
埋点方案
-
代码埋点
嵌入代码形式进行埋点,比如点击事件,在点击时插入一段代码发给服务端,缺点工作量大。 -
可视化埋点
将业务代码和埋点代码分离,提供可视化交互页面,在业务代码中自定义增加埋点事件,最后输出的代码耦合了业务代码和埋点代码。缺点是灵活性低。 -
无痕埋点
前端任意事件都记录下来,进行上传。优点是采集全量数据,不会出现漏埋误埋。缺点是给数据增加传输和服务器压力。
基础原理
- 使用window.addeventListener监听error事件。unhandledrejection可以捕捉promise事件,资源错误事件会被error捕捉,在error里进行判断。
- documenet.addeventListener代理捕获监听全局事件,只保存最后个事件。
- 当有错误触发时,可立即将当前触发事件取出,得到因为哪个事件产生的报错详细原因。
- 最后把这个数据发送出去。
阿里云日志服务
- 首先开通日志服务,然后点创建项目,开启logstore,同时打开WebTracking,默认是关闭的。
- 然后选择服务,选择webtracking,选择包含中文。
- webtracking采集
- post上报规定
- 服务endpoint就是填host的那个参数。
- 最后阿里云平台收到消息即表明成功。