背景
采集sdk作为之家普遍采用的数据采集上报工具为各个业务线的app收集海量数据提供了有力的支持。通过采用代码埋点,sdk触发的形式满足了各个业务线对埋点数据精确控制、自定义数据和精细化数据分析的业务需求。但是复杂的自定义的数据格式和大量的上报数据量对埋点数据的查看和校对工作提出了很高的要求。
现有的埋点数据查看方法
1、通过抓包工具目前查看上报埋点信息普遍采用电脑安装抓包工具,手机端设置代理,通过抓取查看上报接口请求数据的方式。
(1)客户端app因为安全要求普遍对网络代理进行限制,需要开发人员提供特定的测试app 或者提供关闭限制的方法才能进行抓包操作。
(2)正式环境的上报数据做了压缩加密处理,抓包后数据可视性差。造成绝大多数的测试工作只能在测试环境用测试app对埋点信息进行查看验证,不能直接在正式环境查看正式上报数据。
(3)抓包工具对上报的数据格式兼容性差,需要把数据拷贝出来进行格式化后才能查看其中关键数据,操作不便。
2、查看上报日志对于正式环境的埋点数据通常只能通过查看平台导出数据进行验证。
(1)现有的数据平台决定了不能查看实时数据,导出数据存在延后。
(2)如果发现问题数据需要再次结合抓包操作对埋点位置和埋点数据进行验证,需要二次操作。针对于已经发现的数据查看不及时,app环境要求严格,数据格式不友好,无法验证线上数据等问题,我们依托于现有采集sdk和正在开发的采集平台项目开发了埋点可视化功能。目的是为了能够实时、便捷地查看埋点上报数据。
实现原理和具体使用方法
基本原理
1.sdk方面采用在原有采集sdk中新建入口,并增加独立上报路径的方式。能够保证开启上报之后不影响现有采集上报逻辑,确保正式环境数据的稳定性,并将集成工作降到最低。
2.sdk新增埋点数据上报方法,数据采用压缩加密后传输,传递到后台服务进行解压、解密再次发送到web端,保证数据链路的安全。
3.数据的实时显示是埋点可视化功能的基础,我们选择使用websocket建立连接,并且通过动态码的形式将sdk、服务端和web最终串联形成完整的数据链路。
3.1 web端通过随机生成动态码按照已定规则拼接scheme跳转连接并形成二维码,同时依靠动态码和服务端建立socket连接。sdk通过扫码方式进入控制页面,从
scheme中获取动态 码。通过上报接口将埋点数据和动态码上报到服务器,服务端解析数据并通过动态码区分将埋点数据分发给不同的前端页面,至此形成一个完整的数据传递链路。
3.2 sdk首次进入动态码生成规则
3.3 sdk 再次进入流程
4.埋点可视化提供历史记录查询界面 ,可以根据条件筛选查询历史数据。根据保存的数据结构和操作特点选用Elasticsearch进行数据存储保证了对大量数据的筛选性能。
使用方法
1.功能入口请在OA搜索采集平台进入页面,点击服务系统选择埋点可视化功能。
2.集成方式
对于已经集成采集sdk的app只需要升级至最新版sdk;采集sdk具体集成和使用方式可以参考采集平台中详细的文档资料。
3.为了更加便捷的使用埋点可视化功能我们提供了两种开启方式。
3.1 扫码进入
对于拥有扫码能力的app 只需要简单适配
通过扫描二维码获取scheme进行跳转 就能进入到sdk埋点可视化控制页面,自动获取动态码点击开关就可打开埋点可视化功能。
web端默认进入扫码登录页
3.2对于没有扫码能力的app可以直接调用api进入控制页
web端通过使用输入APP端显示的动态码登录
4.登录完成后即可进入数据显示页面。页面头部显示了当前连接的设备和正在上报的APP名称,支持一键复制设备ID。页面主体实时显示上报数据并且根据常用的数据分类区分了 pv,click,,show,other 四种类型。点击item即可显示全部的详细数据。数据详情页面对埋点数据进行了排版,优先显示重点关注数据并对json数据进行了格式化方便查看和复制。
5.我们还对历史上报记录提供了丰富的查询功能,可以通过时间类型等筛选条件对已经上报的数据进行筛选查询.
点击查看详情就可看到全部数据
总结
埋点可视化功能致力于让查看埋点数据更加简单便捷。项目已经发布,我们还在不断进行丰富和完善。后期规划的单类型专注模式、数据实时筛选、查询数据导出功能、数据拷贝对比等功能已经正在开发当中。