zoukankan      html  css  js  c++  java
  • 《七天数据埋点之旅》第六天 埋点管理和验收

    埋点管理是埋点设计的组织方式,可以细分为面向开发者的管理、面向监控者的管理和面向使用者的管理。本节节介绍面向使用者的管理。通过本节的学习,你将获得以下方面的认知:

    • 管理目的

    • 管理准则

    • 管理方式

    • 埋点验收

    0x00 引言

    埋点管理归结到底是元数据的管理,而且还是最底层的元数据管理。

    从埋点记录的格式角度看,埋点管理是记录事件、事件参数、时间参数的取值随着版本迭代的增删改情况。

    从埋点设计的角度看,埋点管理是记录元素(页面、区域、控件)、事件(行为)、上报(时机、网络等)这三个埋点对象随版本的变化情况。

    0x01 管理目的

    埋点管理主要有三大目的,即方便查询、方便协同、方便验证。

    方便查询

    因为埋点是最底层的元数据,在查询报表系统上没有展示的数据时候,产品、运营等可以将需求拆解为统计什么页面上的什么行为,根据页面和行为的简单拆解,通过埋点系统找到对应的埋点设计,然后根据埋点设计从原始的上报数据中查询即可。

    方便协同

    在第二节《埋点之前》中,我们介绍到埋点设计的过程中,需要产品、数据产品、数据开发和数据测试一起协同工作,而协同的根本就是埋点设计文档,而埋点设计文档是随着终端版本的更新而不断更新的,如何将这些更新准确地传达给各方,让协同高效,这是埋点管理的重点职责。

    方便验证

    在选择何种埋点管理方式的时候,一个重要的考虑点是能否将埋点设计的变更导出成可自动化测试的规则,从而可以在测试数据上快速的验证数据是否有上报、格式是否正确、各种情况是否穷尽等。

    0x02 管理准则

    埋点管理需要遵循以下准则:历史兼容、追踪回溯、备注完善

    历史兼容

    历史兼容是指在埋点设计的时候,有以下三个不可改变:

    1. 不能改变已有事件标示(事件id等)代表的事件含义

    2. 不能改变属性标示代表的含义

    3. 不能改变参数值代表的含义

    基于以上三个不可改变,埋点设计只能在原有事件的基础上新增属性、新增参数、新增参数值,也可以在适当的时候废弃某些事件、参数、参数值。

    虽然可以随着版本的迭代也容许事件、参数、参数值的含义进行改变,但是十分不可取的,不仅要在改变的过程中详细的记录,而且过度期间数据开发要很好的兼容迁移前和迁移后,待基本完成迁移后,还要精简程序。这无疑带来了很大的工作量。

    也正是由于历史兼容的准则,受三个不可变的约束较强,在埋点设计之初就要进行合理的规划和布局,避免后期不得已进行埋点重新设计时带来的混乱。

    追踪回溯

    追踪回溯功能是埋点出现问题的时候排查的重要利器,要求埋点设计文档可以回退到任何版本的埋点快照(事件、属性和属性值级别),同时可以追踪的对应的操作人(埋点设计者、埋点开发者、埋点测试者等)。

    备注完善

    备注完善要求详细的标注出事件的上报时机(策略)、参数取值的具体含义,参数值计算方式和单位(尤其是时长类的参数值)、埋点针对的具体点页面位置。

     0x03 管理方式

    不管采用哪种管理方式,都应该记录该埋点涉及的相关人员:

    • 埋点类型:

      算法/业务(产品、运营)/监测/数据

    • 需求人员

    • 开发人员

    • 测试人员

    • 转化人员:

      数据产品经理(单一,一般可不写)

    • 设计人员:

      大数据开发(单一,一般可不写)

    不管采用哪种管理方式,都要求输出埋点的改动信息如下:

    • 版本改动:

      新增xx事件,事件参数有a,b,cxx事件新增a参数xx事件的a参数新增xx值

    • 版本快照:

      该版本生效中的所有事件和参数

    • 版本对比:

      xxa版本和xxb版本对比新增了什么,删除了什么,改动了什么。

    同时在用户体验上,当鼠标悬浮在某个事件或参数上面的时候(或者点击旁边的问号),可以给出该事件或者参数的历史变更记录。

    Excel表格

    修改摘要

    修改内容

    修改内容的维护是通过手动版本记录实现的

    管理系统

    采用该管理体系统的目的是方便的事件和属性添加修改,版本间对比的修改记录,版本快照,完善的注释(支持图片和文字)、一键验证、修改自动通知到干系人等。

    备注:

    本部分只讲解了单个产品的埋点管理,而埋点管理系统是要处理多个app的的埋点,后面完善。

    权限管理

    • 根据不同的角色设计不同的app、version、event_id、params增删改查权限,尤其要注意权限的继承

     0x04 埋点验收

    埋点验收是埋点设计的最后一环,是把控埋点质量的关键环节。

    • 双重验收

    一是客户端通过抓包的方式确认数据的确有上报,二是通过数据仓库提取的方式确认数据落地的形式是否和埋点设计一致的

    • 验收预警

    一旦上报了不符合埋点设计的值自动预警,比如埋点设计中该参数只有a,b,c三个枚举值,结果却上报了d这个值,这个功能可以反过来保证埋点设计和埋点上报是严格一致的。

    另外埋点的上报频次和每次上报埋点数据量的大小也要在预估的范围内,尤其是像加入心跳埋点这样的事件,不然很容易就爆库。

    埋点验收问题可以引出数据的自动化测试课题,见数据治理部分。

    0x05 结语

    埋点管理是埋点流程中最容易忽略的,因为其本身并不直接产出具体的价值,但是其对提高埋点流程的效率和埋点设计的质量的意义重大。另外要严格把控埋点验收,避免将埋点问题带到线上。

    本文为数据茶水间群友原创,经授权在本公众号发表。

    关于作者:我是水大人,资深潜水员,一个基于开发、面向分析、走向全栈的饱经摧残的数据新手,爱折腾不爱玩,爱总结爱思考的老兵,错了改改了又错的惯犯。

  • 相关阅读:
    Spark SQL saveMode 方式
    Spark SQL 读取json 里面的数据 ,jason 是 结构的数据
    SPark SQL 从 DB 读取数据方法和方式 scala
    SPark SQL 从 DB 读取数据方法和方式
    spark parquet 从hdfs 上读 和写 scala 版本
    spark parquet 从hdfs 上读 和写
    Spark streaming 采用直接读kafka 方法获取数据
    Topbeat --Metricbeat 在Windows上设置 centos kafka 打数据 成功
    php代码加入frameset后框架不显示
    【TP5笔记】TinkPHP5中引入资源文件
  • 原文地址:https://www.cnblogs.com/purple5252/p/11205596.html
Copyright © 2011-2022 走看看