Skip to content

埋点策略

埋点上报,用户量非常大,观察用户行为是否有问题时,如何处理会比较好?思路是什么?

采样策略:

  • 分层采样:根据用户类型分层
  • 降频采样:对高频事件进行降采样,如只收集10%的页面浏览事件

前端性能优化

  • 批量上报
  • 使用 requestIdleCallback/setTimeout:在浏览器空闲时发送,避免影响主线程
  • 设置上报阈值:达到特定条件(数量/时间)再触发上报
  • 压缩数据:使用 gzip/Brotli 压缩上报数据

分层存储

  • 热数据:最近1-7天数据存入高性能存储(如Redis)
  • 温数据:7-30天数据存入列式数据库(如ClickHouse)
  • 冷数据:30天以上数据归档至对象存储(如S3)

可视化

  • 面板实时监控、智能告警
  • 分析用户行为路径

常见问题与解决方案

  • 数据量过大导致性能问题

    • 实现智能采样,根据用户特征动态调整采样率
  • 数据延迟问题

    • 关键指标实时上报,非关键指标批量延迟上报
    • 实现离线缓存,网络恢复后再上报

性能指标采集怎么做的?有哪些关键的性能指标?用户行为监控是怎么做的?

  • DOM Ready:只有html dom树,没有css、图片、iframe等等
  • LCP时间:最大的那块图片加载完毕的时间。视口(viewport)内可见的最大的图像或文本块完成渲染的时间点。
  • 页面完全加载的时间:window.onload 事件,不仅 HTML 和同步脚本完成了,页面所依赖的所有资源,包括样式表、所有图片、iframe等,都已经全部加载完成的时间点
  • 首屏时间:它关注的是用户第一眼看到的所有东西
    • 通常通过 MutationObserver 监听首屏内 DOM 的变化,并记录最后一个元素(特别是图片)加载完成的时间
  • 接口耗时

DOM Ready:骨架好了,可以交互了。 LCP:主要内容出来了,感觉页面可用了。 首屏时间:第一眼看到的东西都出来了。 页面完全加载:所有东西都加载完了,页面彻底安静了。

链路图: 境外用户 访问香港/法兰克福 -> 到北京服务器专线 -> 服务器托管平台 -> 应用

image.png

本站访客数 人次 本站总访问量