认识
2024年04月30日
一、认识
1.1 工作流
Web
监控是一个全链路的监控体系, 包括数据采集、数据加工处理、削峰限流、数据上报、数据聚合、数据清洗、数据入库、数据分析与数据挖掘以及根据分析结果进行针对性的调整、消息推送等。
-
数据采集: 包括页面性能数据、异常数据、用户行为、资源数据、个性化指标等数据采集的过程
-
数据加工处理: 包括数据格式化、丰富上下文信息
-
削峰限流: 频率限制
-
数据上报: 上报方式、上报时机、上报优化
-
数据聚合
-
数据清洗
-
数据入库
-
数据分析与挖掘: 性能数据分析、异常数据分析、用户行为数据分析
-
消息推送
1.2 上报设计
二、上报方式
得到了经过 Sentry
处理好的错误数据, 我们需要调用 currentHub.captureEvent
进行数据上报。我们来看看目前主流的上报方式:
-
信标(
Beacon API
): 可以将数据以POST
方法将少量数据发送到服务端, 保证页面卸载之前启动信标请求, 并允许运行完成且不会阻塞请求或阻塞处理用户交互事件的任务。 -
Ajax
(XMLHttpRequest
和fetch
) -
Image
(GIF
、PNG
): 图片打点上报, 可以以向服务端请求图片资源的形式,像服务端传输少量数据,这种方式不会造成跨域
Sentry
采用的是 Ajax
的数据上报方式。
首先,日志上报并不是应用的主要功能逻辑,日志上报行为不应该影响业务逻辑,不应该占用业务计算资源;