专栏首页职场亮哥关于程序埋点的思考

关于程序埋点的思考

埋点目的

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

数据埋点是数据分析的准备工作,只有埋点了才可以获得数据进行分析。在做足数据埋点之后,才能拿到想要的目标数据:

  1. 行为数据:时间、地点、人物、交互、交互的内容;
  2. 质量数据:浏览器加载情况、错误异常等;
  3. 环境数据:浏览器相关的元数据以及地理、运营商等;
  4. 运营数据:PV、UV、转化率、留存率(很直观的数据)

整体调整Python项目规范性之后加入错误数据埋点就属于质量数据部分。

埋点方案

埋点分为前端埋点和后端埋点,常见的埋点方案有

  1. 前端代码埋点:直接在前端嵌入代码收集目标数据
  2. 前端无埋点:常见的前端埋点技术。全部采集,按需选取
  3. 后端代码埋点:直接在后端嵌入代码收集目标数据

此次主要针对不使用第三方数据分析平台的项目进行的后端代码埋点(适用于数据统计分析监控程序这种场景)

后端埋点的设计必然要考虑以下几点:

  1. 高灵活:可以随时随地手工埋点
  2. 小影响:对源代码侵入少
  3. 已更新:埋点内容变化时,只需要修改埋点接口,而不能去代码中一处一处的修改

在一些公共库或者封装的自定义框架里面不进行埋点,所有的埋点都在业务层。比如数据库连接池出现连接数溢出的时候错误需要经过处理,然后按照自定义的统一风格抛出相关信息到业务层,便于业务层判断公共库和自定义框架执行时是否有错误。

后端埋点具体实施方案

直接在后端指定位置处写入埋点代码收集数据。每个方法中在共享共有信息这一块有一些不同。

  1. 每个需要用到发送消息的文件中都import一份配置信息,然后在需要的地方,根据配置信息手动埋点。
  2. 将消息发送封装成一个MixIn类,使用继承混入到各个类中。每次都需要经过建立连接发送消息断开连接。
  3. 将埋点信息封装成一个模块,提供全局的初始化函数和埋点消息生成函数,在程序入口处调用初始化模块的初始化函数进行初始化,然后在程序的任何地方都可以消息生成函数。此种方法类似于使用第三方数据分析平台提供sdk时的使用方法。

方案选取:

  • 由于项目是python编写的,埋点数据发送到kafka,封装好的第三方python模块可以采集自己需要一切信息。因此采用最后一种方式,写成可插拔的第三方sdk的形式,可以直接封装一些新增的方法,包含一些可以用的信息,例如自动采集报错信息所在行数。
  • 对于非python项目,提供python脚本供其他语言程序进行调用。例如Erlang编写的转推流服务中调用Python脚本抛出报错信息及其他数据。

参考:

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 个人Next主题配置文件

    编辑主题的 source/css/_variables/base.styl 文件,修改以下变量:

    职场亮哥
  • 基于消息传递的并发模型

    重点介绍消息传送型的两种模型Actor和CSP(Communicating Sequential Process)的各项对比

    职场亮哥
  • 从哈夫曼编码再出发:原理和现实

    对于计算机科班出身的人来说,在大学阶段几乎都学过信息论和算法这两门课,信息论都会讲到香农三大定理以及哈夫曼编码,算法课上会学习二叉树,甚至哈弗曼树。在介绍哈夫曼...

    职场亮哥
  • 《七天数据埋点之旅》指引篇

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

    木东居士
  • 美团点评前端无痕埋点实践

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

    美团技术团队
  • 知乎数据埋点方案

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

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

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

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

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

    木东居士
  • 埋点系统杂谈

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

    哒呵呵
  • 日志埋点系统的架构与实现

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

    周三不加班

扫码关注云+社区

领取腾讯云代金券