性能监控

合成监控(SYN)

  1. 如 Lighthouse、audit 等
  2. 适用于团队自有业务、对性能做定性分析,或配合 CI 做小数据的监控分析

真实用户监控(RUM)

  1. 如蚂蚁的九色鹿等 (京东的埋点更多的类似是业务级别的)
  2. 自建或者一些市面上可用的系统
  3. 适用于中台产品支持前台业务,对性能做定量分析,结合业务数据进行深度挖掘
  4. 真实用户性能数据采集方案
    1. 使用标准的 API:performance.timing(已废弃)
      1. High Resolution Time, HRTime
      2. performance Timeline API
      3. 优先抹平 Navigation Timing spec 差异,优先使用 performance Timeline API(polyfill)
    2. 定义合适的指标
      1. PLT(Page Load Time):易受到特殊情况影响、FP、FCP、FMP(首次有效渲染:First Meaingful Paint)、SR
      2. DOM 相关
      3. Spec 相关
      4. 算法相关
      5. 视觉相关
      6. 根据业务特性及性能监控方案选择最适合的性能指标,必要情况下可使用自定义性能点位
    3. 采集正确的数据
      1. 上报页面加载开始时间,以及后续各时间点相对增量,在数据端进行阶段清洗和异常处理
    4. 上报关联的维度
      1. 常规维度:时间、页面、浏览器、操作系统、地理位置
      2. 专业维度:页面是否可见、页面加载方式、等效网络连接类型、是否启用 service worker、是否启用 HTTP/2、是否启用 GXIP 压缩
  5. 分析性能监控数据
    1. 分析性能指标时建议关注百分位数,对性能的要求越高,使用越大的百分位数