埋点系统是什么

  介绍

这篇文章主要介绍了埋点系统是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 埋点系统是什么

前言

最近杂七杂八的事情比较多,难得抽出时间来弥补一下之前的系列,欠大家的埋点系列现在开始走起来

为什么需要埋点系统

电影中

前端开发攻城狮开开心心的 coding,非常自豪的进行了业务、UI 分离开发,各种设计模式、算法优化轮番上阵,代码写的 Perfect(劳资代码天下第一),没有 BUG,程序完美,兼容性 No.1,代码能打能抗质量高。下班轻松打卡,回家看娃。

现实中

实际上,开发环境与生产环境并不能等同,并且测试的过程再完善,依然会有漏测的情况存在。考虑到用户使用客户端环境、网络环境等等一系列的不确定因素存在。

所以在开发过程中一定要记得三大原则()

  1. 没有完美的代码,只有没发现的 BUG
  2. 绝对不要相信测试环境,没有一种测试环境都涵盖所有线上情况
  3. 如果线上没有一点反馈,不要怀疑,问题应该藏得很深、很深

什么是埋点系统

埋点就像城市中的摄像头,从产品的角度考虑,它可以监控到用户在我们产品里的行为轨迹,为产品的迭代、项目的稳定提供依据,WHO、WHEN、WHERE、HOW、WHAT 是埋点采集数据的基础维度

对前端开发而言,可以监控页面资源加载性能,异常等等,提供了页面体验和健康指数,为后续性能优化提供依据,及时上报异常和发生场景。从而能够及时修正问题,提高项目质量等。

埋点可以大概分为三类:

  1. 无痕埋点 - 无差别收集页面所有信息包括页面进出、事件点击等等,需要进行数据冲洗才能获取到有用信息
  2. 可视化埋点 - 根据生成的页面结构获取特定点位,单独埋点分析
  3. 业务代码手动埋点 - 根据具体复杂的业务,除掉上述两种不能涵盖的地方进行业务代码埋点

代码埋点可视化埋点无痕埋点典型场景无痕埋点无法覆盖到,比如需要业务数据简单规范的页面场景简单规范的页面场景,优势业务数据明确开发成本低,运营人员可直接进行相关埋点配置无需配置,数据可回溯不足数据不可回溯,开发成本高不能关联业务数据,数据不可回溯数据量较大,不能关联业务数据

大部分情况,我们可以通过无痕埋点收集到所有的信息数据,再配合可视化埋点,能够具体定位到某一个点位,这样大部分的埋点信息都据此分析出来。

在特殊情况下,可以多加上业务代码手动埋点,处理一下特别的场景(大部分情况是走强业务与正常的点击,刷新事件无关需要上报的信息)

埋点 SDK 开发

埋点数据收集分析

  • 事件基本数据
    • 事件发生时间
    • 发生时页面信息快照
  • 页面
    • 页面 PV,UV
    • 用户页面停留时长
    • 页面跳转事件
    • 页面进入后台
    • 用户离开页面
  • 用户信息
    • 用户 uid
    • 用户设备指纹
    • 设备信息
    • ip
    • 定位
  • 用户操作行为
    • 用户点击
      • 点击目标
  • 页面 AJAX 请求
    • 请求成功
    • 请求失败
    • 请求超时
  • 页面报错
    • 资源加载报错
    • JS 运行报错
  • 资源加载新性能
  • 图片
  • 脚本
  • 页面加载性能

上面的数据通过 3 个维度来定义埋点事件

  • ·LEVEL: 描述埋点数据的日志级别
    • INFO:一些用户操作,请求成功,资源加载等等正常的数据记录
    • ERROR: JS报错,接口报错等等错误类型的数据记录
    • DEBUG: 预留开发人员通过手动调用的方式回传排除bug的数据记录
    • WARN: 预留开发人员通过手动调用的方式回传非正常用户行为的的数据记录
  • CATEGORY:描述埋点数据的分类
    • TRACK: 埋点SDK对象的生命周期管理整个埋点数据。
      • WILL_MOUNT:sdk对象即将初始化加载,生成一个默认ID,跟踪全部相关事件
      • 埋点系统是什么