埋点系统杂谈

前段时间作为埋点系统从无到有再到稳定的亲历者在公司内部写了一份技术复盘,这篇文章就当作那篇复盘的余味。

初衷

做埋点系统的初衷很简单,就是想更加详细了解用户是如何使用我们的产品,并串联起已有的线下数据,从而更好为用户提供服务。

因为埋点系统不算是核心业务系统,所以起初投入的精力不算太多,便想联系厂家去做,结果找了几家出名的厂商讨论,最后这些厂商无论是技术还是效果展示,大家都不太满意,于是研发人员决定自己操刀,参考腾讯的mta和阿里的案例,从无到有开始搭建系统。

效果

研发人员经历了几个月的投入,埋点系统算是稳定上线,提供给所有业务方使用,效果还算不错。至少在亿级用户的量级下,搞各种活动都是正常运行。自上线稳定后,研发也很少介入和开发。

分类

埋点可以分为后端埋点和前端埋点两种。前端埋点专注于用户在页面的交互行为,用户的每一次的交互行为称为事件。前端埋点也不是能收集到所有行为,因此需要后端埋点。后端埋点起到了对前端埋点的辅助作用,补充前端埋点采集不到的信息。从这个角度来看,我们的埋点系统采纳的就是现在流行的事件模型。

流程和管理

对于埋点系统而言,技术不是最难的,最难的是管理埋点和埋点的数据模型。一个产品随着时间的发展,如果不走下坡路的话,会出现各种各样的业务场景,而每个业务场景都有着自己的特定逻辑和需求。在项目运行之初就必须考虑好埋点的管理和一套相对普适的数据模型,否则到后期就是整个项目就会变得很混乱。

举个例子:在业务发展之初,对于想要做的数据分析不一定想的很全,可能就会添加进很多无意义的埋点,从而导致埋点的设计、研发和测试人员出现很多无意义的工作量;反之亦然,要是没有合适的埋点,那么业务分析时,就会出现“数”到用时方恨少的情况。

同样的,随着页面埋点的增多,没有一套完善的流程,就很难从全局角度考虑整个产品的发展,而是各自为政,甚至有可能出现与某个业务埋点相关的人员离职后,整个业务的埋点就没有人知道了。

数据模型

埋点的数据模型决定着埋点的质量。关于数据模型的设计,网上文章很多,就不在此献丑了。大概提下当时考虑的核心指标:向后兼容性,留足空间给一些特定的业务埋点,收集一些特殊的信息。同时照顾到普适的需求,有一套默认配置的数据模型,减少研发等人员的工作量。

技术

有了这些以后,才是技术的考量。既然是埋点,那就必须考虑到实时性。比如在一个活动上线推广后,产品和运营人员会很迫切的想知道活动的效果,比如多少人访问了这个页面等等;再例如,在一些信息流推荐中,用户点击了不喜欢某个文章等等,系统需要在获知这个页面行为后尽可能快的调整推荐行为。因此埋点系统必然是一套流处理系统,关于流处理系统可以参考公众号之前文章。

经验和教训

最后再聊下经验和教训吧。埋点系统在初期过于追求的腾讯的MTA和阿里的开发经验文章,而忽视了自身产品的特征,导致每个页面都需要开发人员参与,开发人员苦不堪言,后来从现有的业务抽象出符合自身需求的数据模型,才使得系统的开发工作量减少。

总的来说,不求无功,但求无过吧。

本文分享自微信公众号 - 鸿的笔记(goodreadman),作者:鸿影洲冷

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 随便聊聊sql解析的词法分析

    因为最近在研究不同数据库的sql的转换,自己也手写了勉强能用的词法解析器和语法解析器。虽然到后来发现了sqlparse和PLY这两个awesome的库, 可以让...

    哒呵呵
  • Python对象的比较:is和==

    这两个符号在Python的比较判断中应用广泛,但是这两者是有区别的,体现的是对象中的相等和标识符的概念。==符号比较的是两个对象是否相等,而is符号表达的则是标...

    哒呵呵
  • 讲明白python令人头疼的编码问题

    在python3里,已经做了区分unicode就是文本,bytes就是原始的字节序列。

    哒呵呵
  • 《七天数据埋点之旅》指引篇

    数据埋点是一份上手容易精通难的典型例子,可以说人人都可以埋点,但是埋点质量差异巨大,而这份差异随着时间推移会加速放大。

    木东居士
  • 关于程序埋点的思考

    对于本次修改的数据统计分析程序的埋点,只是为了统计数据中出现的一些不易发现的错误,全部让程序主动跑出来。但是只要是主动抛出统计数据,都属于埋点。

    职场亮哥
  • 知乎数据埋点方案

    从业务过程中采集埋点,是数据驱动型公司的必要条件。知乎的产品功能评审环节,不仅有 PRD (Product requirement document),还加入了...

    Spark学习技巧
  • 《七天数据埋点之旅》第二天:埋点之前

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

    木东居士
  • 《七天数据埋点之旅》第六天 埋点管理和验收

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

    木东居士
  • 日志埋点系统的架构与实现

    所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语。指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。 埋点的技术实质,是先...

    周三不加班
  • 美团点评前端无痕埋点实践

    构建一个数据平台,大体上包括数据采集、数据上报、数据存储、数据计算以及数据可视化展示等几个重要的环节。其中,数据采集与上报是整个流程中重要的一环,只有确保前端数...

    美团技术团队

扫码关注云+社区

领取腾讯云代金券