阿里巴巴的日志采集分享(上)

要说日志采集的难度是不高,但是要说复杂程度,绝对是很繁琐的。有许多细节和流程需要考虑,不同的客户端如何采集,格式怎么统一,各种用户行为怎么跟踪,如何减少对业务代码的侵入,怎么保证性能和实时性等等。

流量产品整体介绍

闭环:无规范不分析,无分析不采集;采集必计算,计算必分析;

自下而上是「数据采集规范」,「数据采集」,「数据解析」,「日志数据域」,「流量分析平台」。

在数据采集前,先定义了采集规范如SPM(超级位置模块),SCM(超级内容模块),黄金令箭(交互采集模块),采集规则统一等。

数据采集的支持平台有埋点申请埋点配置埋点验证数据监控数据管理。(这个就是埋码的流程。)数据采集技术包括 Apus/Etag(WEB产品采集),Beacon(WEB嗅探),UserTrack(APP产品采集)等。

采集规范

1. 采集规则统一

各个产品线只有一套统一的数据监控规则。

举一个天猫和淘宝在做产品曝光率分析的例子。比如在做智能推荐系统的时候,希望知道产品的曝光率。这时就需要对曝光制定一个规则 – 什么是曝光。如果淘宝把出现一点产品图片的边缘就算曝光,而天猫把出现了整个产品图片才叫曝光,那么这样的统计结果就有很大的差异。

现在统一规定:一个产品图片露出50%的区域同时展示了0.5秒,就算一次曝光。

2. SPM 和 SCM

SPM(Super Position Model)全称超级位置模型。

SPM是Web端Aplus日志体系和APP端UserTrack日志体系下,共同使用的的重要规范。

阿里的SPM位置编码由A.B.C.D四段构成, 各分段分别代表 A:站点/业务, B:页面, C:页面区块, D:区块内点位。 如下图所示:

SCM(Super Content Model)全称超级内容模型。

与业务内容一起下发的埋点数据,用来唯一标识一块内容。 客户端打点时,将 SCM 编码作为埋点的参数上传给 UT 服务器。

SCM编码也采用a.b.c.d的格式,其中,一般来说,

  • a标识投放系统ID,用来标识不同的内容投放方,比如商城的阿拉丁系统,对应的投放系统ID为1003。
  • b标识投放算法ID,用来标识投放系统产生不同内容的投放算法。
  • c标识投放算法版本ID,用来标识投放算法的不同版本。
  • d标识投放人群ID,用来标识不同的投放人群,或者对接profile。

在分析中,可以分析不同位置相同内容带来的影响,也可以分析相同位置不同内容带来的流量,当然还可以交叉分析。

3. 黄金令箭

用户在页面上某个行为触发一个异步请求,按照约定的格式向日志服务器发送请求,展现、点击、等待、报错等等都可以作为交互行为。

数据采集

整体设计

采集主要分为客户端埋点,插件/封装,服务端部署。

  • Aplus 是Web端(基于浏览器)日志采集技术方案
  • UserTrack 是阿里巴巴内部采集并上报App日志的sdk,适用于native原生页面、webview相关业务。
  • Adash 是UserTrack的服务端,主要负责处理用户数据上传请求,配置获取请求,以及对请求进行相关校验。

Aplus - WEB 采集

采集内容包括:

  • 当前页URL, 标题和来源页的URL(如果有)
  • 用户身份识别信息: cookieID, 淘宝会员数字id(不一定需要登录)和nickname(若已登录)
  • 客户端/浏览器信息和屏幕分辨率
  • 当前页SPM, 来源页点击位置SPM编码, 来源页的来源页点击位置SPM编码 (前提均为若已部署了SPM)
  • aplus版本信息及反作弊验证码

交互行为使用「黄金令箭」统计。

UserTrack - APP 采集

UserTrack 将采集以下数据

  • 采集设备信息(设备、运营商……)
  • 采集APP信息(应用、版本、渠道……)
  • 采集用户行为(会员、登陆、注册、页面浏览、控件点击……)

UserTrack 会为每种业务事件分配一个事件ID(event_id),通过event_id来区分每条日志的业务含义,例如常见的页面事件(event_id=2001)、控件事件(event_id=2101)等。开发人员可以根据不同的业务场景调用不同的API埋点,为不同的业务事件提供不同的业务参数。

UTDID

UTDID 表示唯一用户,该id可以在不同的产品中通用。

Next

下期在分享

  • UserTrack 高级功能
    • 曝光日志预聚合
    • 回退识别
    • H5 和 native日志统一
  • 数据保障
    • 日志处理链路
    • 日志分流
    • 日志缓存
  • 埋码流程
    • 基本流程
    • 埋码准确度验证
  • 埋码测试
    • 本地测试
    • 灰度版本测试

文章中图片因版权原因移除,详细内容可以查看《大数据之路》

The Why·Liam·Blog by WhyLiam is licensed under a Creative Commons BY-NC-ND 4.0 International License.

WhyLiam创作并维护的Why·Liam·Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Why·Liam·Blog (https://blog.naaln.com),版权所有,侵权必究。

本文永久链接:https://blog.naaln.com/2017/08/alibaba-data-track-1/