AIOPS研究总结:浏览器页面和客户端日志采集

浏览器的页面日志采集

页面浏览日志采集:浏览数(Page View,PV)、访客数(Unique Visitor,UV)。在HTML文档内适当位置增加一个日志采集节点,当浏览器解析到这个节点时,将自动触发特定的HTTP请求到日志采集服务器。(日志采集服务器接收到请求,就可以确认浏览器成功接收并打开了页面。)

采集-发送-收集-解析存档:

1)客户端日志采集,可以由开发人员在开发页面手动植入JavaScript脚本,也可以由业务服务器在响应业务请求时动态执行。

2)客户端日志发送,采集脚本执行时,向日志服务器发起日志请求,采集完成之后立即或者延迟(个别)发送。

3)服务端日志收集,日志服务器接收到客户端的日志请求后,一般会回复一个请求成功的响应,以免影响页面正常加载。同时日志服务器的日志收集模块会将日志请求内容写入一个缓存区,完成此条浏览器日志的对象。

4)服务器端日志解析存档,服务器接收到的日志进入缓存区后基于日志处理程序按照约定的日志处理逻辑解析,解析后转存入标准日志文件并注入实时消息通道供其它后端程序进行进一步加工处理。

 

页面交互日志采集:用户在页面加载渲染完成之后各类操作。

交互日志的采集以技术服务的形式呈现,基于HTTP协议的日志服务“黄金令箭”。

1)业务方通过“黄金令箭”元数据管理系统注册具体要采集的交互日志业务、场景、采集点。系统生成日志采集代理木板。

2)业务方将交互日志采集代码植入目标页,将采集代码与交互行为做绑定。

3)用户在指定页面操作,采集代码和正常业务互动相应代码一起被执行和触发。

4)采集动作完成后,将日志通过HTTP协议发送到日志富区服务器,原则上不做解析,只简单转存。

最后业务方自行按需处理,并与正常的PV日志做关联分析。

 

页面日志服务器端清晰和预处理。

经过上述解析处理后的日志并不直接提供给下游使用,对于非实时场景,一般需要进行离线预处理。

1)识别流量攻击、网络爬虫、和流量作弊。合法性检验,算法规则过滤。

2)数据缺失补正。数据统一、标准化。

3)无效数据删除。配置不当、业务变更导致的失效、冗余数据。

4)日志隔离分发。基于数据安全或业务特性考虑。

经过清洗、修正、结构化处理之后,将具备结构化或半结构化特征,可以被关系型数据库装载或使用。

客户端的日志采集

目的:服务开发者,协助分析各类设备信息;了解用户行为,优化产品,提升用户体验。

事件(基于用户行为划分)是无线客户端日志行为的最小单位。分为页面事件(同浏览器页面)和控件点击事件(同交互日志)。

对通用的用户行为,抽象出一些通用的方法接口。

页面事件

每条页面事件日志记录三类信息:1.设备及用户的基本信息;2.被访问页面的信息,主要是业务信息(商品ID、店铺ID等);3.页面的来源(以及来源的来源),用于还原用户完整的访问行为。

实现方式:页面展现、页面退出的接口方法成对使用;页面扩展信息的接口在离开页面前给页面添加相关参数,在前两个接口的基础上使用。

为什么要在页面离开时发送日志,可以自然的带上页面停留时间。

在离开页面时发送日志还要考虑客户端异常关闭的情况。

SPM是阿里系的超级位置模型。

控件点击事件

相较页面点击事件更简单。交互日志就是控件点击以及其他事件。

控件点击事件的逻辑比较简单,就是操作页面上的控件。只需要把设备、用户信息,以及控件所在页面名称、控件名称、控件的业务参数等告诉SDK。

其他事件,即根据业务场景自定义事件:事件名称、事件时长、事件所携带的属性、事件对应的页面。

其他还有一些默认的日志采集方法,如自动捕获应用崩溃,产生日志崩溃相关信息。以及应用退出,前后台切换等信息。和业务不是非常相关,但是对分析起很大作用。这些没有必要让应用开发者去触发埋点。

特殊场景,主要为了平衡日志大小、减小流量消耗、减小服务器压力、减小网络传输压力等。

H5和Native日志统一,现在的App基本都是Hybrid App,既有Native页面,又有H5页面。

Native页面采用基于SDK的方式采集日志,H5页面一般采用基于浏览器的页面日志采集方式。由于采集方式不同,一般需要将采集内容及采集服务器分开。

实现H5和Native日志的统一处理,采用归一的方案,可以把H5日志向Native日志归,也可以把Native日志向H5日志归,。

阿里选择是Native部署SDK的方法。原因:1.采用SDK的方式可以采集到更多的设备信息;2.SDK处理日志,可以在本地生成缓存,然后择机上传,可以在网络不佳时延迟上报,保证数据的完整性。

 

设备标识:PC端一般使用Cookie信息来作为设备的唯一标识。

但是手机App的MEI,IMSI、MAC和UDID,不容易获取,无法唯一标识设备。

阿里无线设备唯一标识使用IUTDID,针对不同设备、系统,有一套完成整的算法。

日志传输(上传、压缩、传输)

无线客户端产生日志后,先存储在本地客户端,然后再伺机上传。上传时机:启动后、使用中、切换到后台时,还要考虑日志的大小、上传时网络耗时等。

从客户端用户行为到日志采集服务器的日志,整个日志采集的过程就算结束了。

日志传递到下游:阿里使用消息队列(Time Tunel,TT)的方式实现从日志采集服务器到数据计算的MaxCompute。

TT将消息收集功能部署到日志采集服务器上进行消息的收集,后续应用可以实时订阅TT收集到的消息,也可以是离线定时获取消息,完成离线计算。

日志采集的挑战

主要挑战是实现日志数据的结构化和规范化组织,实现更为高效的下游统计计算,提供符合业务特性的数据展现,以及为算法提供更为灵活、便捷的支持。

网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2020 彩龙社区(https://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP