写点什么

还在用全埋点的方式来监控数据?这款开源软件能够解决你的“麻烦”

  • 2019-11-04
  • 本文字数:2534 字

    阅读完需:约 8 分钟

还在用全埋点的方式来监控数据?这款开源软件能够解决你的“麻烦”

为企业提供更全面的数据能力,实现在业务层面的数据驱动

2019 年 10 月 24 日 -26 日, 以“精益·成长”为主题的“2019 易观 A10 数据智能生态大会”在上海成功举办。此次大会上,易观正式发布了易观方舟 5.0 版本。作为旨在打造精益化企业数据管理的智能数据平台,易观方舟 5.0 版本,在数据采集功能实现层面上,采用了前不久刚刚开源的可视化 SDK 埋点技术。该方式简化了数据管理难度,让数据所见即所得。可视化埋点很大程度上解决了数据采集领域的痛点,是当前业内发展的重要方向之一。


作为一个尚处于发展初期方法,可视化埋点技术对于诸多开发者来说,仍然是一个相对陌生的概念。那么我们应该如何理解可视化埋点,可视化埋点目前已经发展到怎样的地步了,对于数据行业来说,对于数据分析领域来说,可视化埋点技术能带来怎样的改变?

可视化埋点的前言:数据统计

要更加深入了解什么是可视化埋点,首先要了解什么是数据统计。作为产品迭代过程中非常重要的一部分,在互联网化程度不断加深、业务变更如此之快的环境下,准确全面的数据统计能够为公司的发展决策做出高效的方向指引。数据统计在现阶段,更是成为了场景之间、领域之间、企业之间进行合作与融合的数据基础。


数据统计,主要由数据采集和数据分析这两大部分组成,本文将着重介绍【数据采集】这一部分的技术实现与未来发展趋势。数据采集主要 SDK 嵌入的方式来进行数据的挖掘与采集,通过这层确定了数据的来源为后续数据分析提供了最具价值的数据基础。在现阶段,如何快速、准确、无遗漏地获取数据,是数据采集 SDK 所面临的主要挑战。

数据采集 SDK 的发展阶段

回顾过去数据采集方式的发展,主要经历了代码埋点 - 全埋点 - 可视化埋点这 3 个阶段:


  • 代码埋点,在运营人员提出统计需求后,首先产品人员设计前端采集埋点方案,开发人员植入埋点,重新打包发布新版本,最后运营人员拿到新版本提交的数据进行分析。这种埋点方式的优点是非常精准,完全贴合业务需求;但同样缺点也很明显,就是埋点的流程非常漫长,每次增加新的埋点都必须重新升级前端程序,对于统计需求比较紧迫的场景来说并不合适。

  • 全埋点,全埋点方式满足了“对某个细节进行数据统计”的需求,在程序打包时将埋点代码植入每个可操作元素,实现了所有元素的点击数据上报,产品、商务及运营人员都可以筛选出相关按钮的统计数据,同时也避免了重新发版的麻烦;但是全埋点方式的缺点也很明显,就是数据量非常大,从而造成大量服务器资源的浪费。

  • 可视化埋点,如何在不发版的情况下新增统计业务,且能精准地植入埋点,避免全埋点方式下的资源浪费?可视化埋点方式完美解决了这种矛盾。并且可视化埋点的优点不仅于此,其最大意义在于将埋点工作交给了真正关心业务效果的人。开发者只是功能的实现者,他并不关心这个功能实现后能够起到多大的作用。而运营人员则不同,如果能够依照所关心的业务方向进行自定义埋点,就可以灵活及时且更直观的看到运营效果,对于运营人员来说就能够随时感知各个渠道的状况。从而能够解放开发人员的工作量,让关心业务的人主宰整个埋点过程。

模块化设计思想:方舟可视化

现阶段,市面上广泛使用的埋点方式是“全埋点”,但是上文也有提到,全埋点具有数据体量大、服务资源浪费等不足,并且在业务强耦合的场景下,全埋点也很难满足相关的需求。虽然可视化埋点方式目前尚处于发展初期,但其能力已经可以满足甚至替代部分全埋点功能以及简单的业务场景。并且由于可视化埋点的实时修改,立即生效、所见即所改等特性的存在,未来等到可视化埋点技术进一步成熟后,相信将能够很好解决业务强耦合场景下的诸多需求。


方舟可视化目前已经实现了从前端展示、埋点圈选、事件捕获、数据上报的全流程可视化,满足界面交互相关的大部分数据统计需求。方舟可视化产品分为三大部分,分别为可视化 SDK、长链服务端以及前端圈选页面。三端各司其职,默契配合才能实现埋点设计和数据上报,下面这张图概述了在埋点阶段各端的配合流程:



浏览器圈选和长链服务端的主要功能是正确下发埋点指令,在接收到埋点指令后,可视化 SDK 将其转化为准确的数据并上报到服务端 。


为了满足上述的目标,可视化 SDK 需要进行模块化设计,通过将服务端发送的数据流分发到每一个模块下,最终准确完整实现埋点需求。方舟可视化 SDK 整体分为下图中这 4 个模块:



各个模块的功能如下:


1、长链接、数据解析与封装、指令分发这三个模块,实现了 WebSocket 协议的封装,业务数据处理,将每个指令分发到各自的指令处理模块;


2、指令处理模块,主要的指令处理模块包括设备信息(用户封装设备信息上报到前端)、页面信息(用于获取页面截图和结构信息)、埋点信息(用户事件绑定和埋点);


3、事件绑定模块,服务员埋点信息处理模块,收到埋点指令后该模块会查找当前页面,定位埋点目标元素,并设置事件监听;


4、获取埋点配置、埋点上报模块,负责获取当前埋点配置信息,事件触发后通过该模块将埋点数据上报到服务器。



模块间的交互模式


从上面的交互图中可以初步了解方舟可视化的模块化设计思想,通过针对数据流进行模块设计,以数据作为关注点,使每一个模块的输入与输出都与数据流息息相关。


除此之外,通过方舟技术团队的持续攻关,方舟可视化实现了与界面相关的强业务耦合场景,最大限度地覆盖了埋点需求,并最大限度地实现了“将埋点主动权从开发和产品人员转交给运营人员”这一可视化埋点的设计初衷。

方舟可视化的发展方向 - 让数据大众化、全民化

方舟可视化目前正在稳步发展中,已经能够支持界面间的交互相关埋点,但是非界面交互相关场景目前尚无能为力,这也是未来方舟可视化研究的重要方向;除此外支持更多交互场景、适配更多设备与系统、更全面地覆盖事件和属性、不断丰富 SDK 采集的数据、满足更多的业务场景等等众多方向,方舟可视化在这些方面会不断发力。


为了促进行业发展,方舟可视化于近日正式宣布开源,以社区的形式促进可视化 SDK 的持续进化,通过开放接口协同创新,方舟愿与各位社区开发一起,真正实现企业在一次次快速闭环实践的精益成长,并且通过可视化埋点这一技术,降低数据门槛,真正能够将数据价值普及开来,让数据实现真正的大众化与全民化。


目前方舟可视化已经开源,点击【易观方舟开源】即可访问易观方舟于 GitHub 上的开源界面。


2019-11-04 15:376497
用户头像
佘磊 策划编辑

发布了 50 篇内容, 共 23.0 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

Java注解

急需上岸的小谢

10月月更

js异步编程面试题你能答上来几道

loveX001

JavaScript

CEF | CEF浏览器客户端功能扩展:实现前进、后退、刷新、调用控制台、设置cookie、网页自适应窗体大小

YOLO.

qt 10月月更 C++

Linux下IIC驱动编写,介绍IIC子系统框架的使用

DS小龙哥

10月月更

画一个冰糖葫芦祝大家甜甜蜜蜜

急需上岸的小谢

10月月更

CorelDRAW 2019 软件应用项目(六)

张立梵

设计师 CorelDRAW 2022 10月月更

CEF | CEF浏览器客户端功能扩展:实现下载列表功能

YOLO.

qt 10月月更 C++

华为云从入门到实战 | 云速建站服务与企业主机安全服务

TiAmo

华为 华为云 云开发 10月月更

HashMap源码分析(一)

知识浅谈

hashmap 10月月更

React组件之间的通信方式总结(上)

beifeng1996

React

Linux下驱动开发_块设备驱动开发(内存模拟存储)

DS小龙哥

10月月更

Linux下RTC驱动开发(硬件采用DS1302)

DS小龙哥

10月月更

让Jenkins执行GitHub上的pipeline脚本

程序员欣宸

GitHub jenkins 10月月更

数据湖(四):Hudi与Spark整合

Lansonli

Hudi 10月月更

React组件之间的通信方式总结(下)

beifeng1996

React

改变线程状态的方法

急需上岸的小谢

10月月更

2022年ArchSummit全球架构师峰会杭州站感想

谙忆

ArchSummit 飞链云 架构师峰会

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

DS小龙哥

10月月更

前端关于面试你可能需要收集的面试题

loveX001

JavaScript

React源码分析1-jsx转换及React.createElement

goClient1992

React

C++中变化布局实现思路

中国好公民st

c++ 布局 10月月更

抢滩东南亚,融云IM助力应用抓住经济转型红利

融云 RongCloud

互联网 数字化 IM

【一Go到底】第十九天---init函数、匿名函数

指剑

Go golang 10月月更

CorelDRAW 2019 软件应用项目(五)

张立梵

设计师 CorelDRAW 2022 10月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

react源码分析:babel如何解析jsx

flyzz177

React

无法吃午餐的学生数量

掘金安东尼

算法 10月月更

react源码分析:组件的创建和更新

flyzz177

React

Java多线程 线程池的生命周期及运行状态

Yeats_Liao

后端 Java core 10月月更

React源码分析2-深入理解fiber

goClient1992

React

React面试八股文(第二期)

beifeng1996

React

还在用全埋点的方式来监控数据?这款开源软件能够解决你的“麻烦”_开源_易观数据采集团队_InfoQ精选文章