前言
日志不仅仅是后台的各种应用程序的日志文件信息,还包含各类资源,例如应用服务器、数据库、中间件等日志记录,同时对于航司电商直销渠道等,最关键的一部分来自于前端的终端设备日志及必要的前端服务层日志。
将上述几部分日志集中收集和分析起来,不仅仅是系统运维的基础,更关键是为后续用户行为分析等深入应用场景提供最原始和真实的行为数据基础,例如可以用于产品管理及分析等。
前端数据全景平台建设蓝图
对于前端部分,不能仅仅通过单纯移动设备或前端服务层收集,更需要后端的支持及深度日志处理。

埋点&打桩
埋点及打桩貌似有很多工具及平台支持,但是再好和便利的工具,都需要标准化、数据结构、收集规范及使用场景的结合。然而最好的最全面的方式,往往来自于后端埋点。

分布式收集
由于使用场景和时机等因素,更关乎互联网设备的网络等因素,往往很难做到实时和大规模集中处理。所以适当的延时、逐级聚合数据、日志归档等机制,必须结合应用。

数据精加工
再好的工具或平台,再完善的规范都必须根据实际日志的最终使用诉求,进行过滤、筛选、等等一系列处理。即数据的精加工,例如补全必要的主键信息,数据的关联等等。

数据补全
数据精加工中必要的一环往往是数据补全,由于之前考虑数据最简化最小化吞吐的诉求,往往需要配合后端埋点,将前端收集的各类数据,逐一补全必要的信息,乃至添加冗余字段,方便后续洞察分析使用。

数据全量化
各增量或新增日志信息,最终都会汇聚到全量的持久化存储中,往往以NoSQL方式的大数据平台存储。但是此事需要必要的数据建模及规划,保证数据存好、使用便利、便于后续衍生等。

数据BI分流
然而对于数据洞察,或后续的各类分析及使用,往往不需要全量的历史数据,都是需要部分时间片段或数据领域的“块”状数据。所以为了其这种特殊目的,必须在原始全量数据的基础上,抽取子数据集进入到分析环节和对应的存储载体中。

前端数据全景平台技术蓝图
如下是一个全局的前后端埋点的逻辑架构,供参考。

前端数据全景平台设计蓝图
在实施过程中,需要严格遵守如下6个步骤,以实现事半功倍的效果。

分析洞察的渐进策略
在实际使用的过程中,对于数据的层次、使用场景、最终目标等,产生分析及洞察的执行方案。

对于单一个体的数据分析方向
对于航司直销的特定单一用户,其分析的主旨和视角如下。

对于单一个体的数据分析示例
如下是一个数据标签化的案例及举例。

一条日志引发的血案
日志规范的目的不仅仅是简化代码开发量和提高使用的便捷度,更关键的是减少后续日志收集及精加工的工作量,最终提取更多个日志信息中的高价值数据。

如下几点是关于日志开发及相关框架的应用规范建议。
Application Naming Matrix

Messaging

Logging

Exception Handling

Interception / AOP

日志的Rolling, Purge, Ship, Grok, Hadoop……

结论
日志不仅仅是应用开发的概念范畴,更是互联网产品一个特殊的数据源头。在实际应用过程中,往往需要综合规划、设计、实现、演进;更需要业务职能单位的参与,例如产品、运营等。技术平台架构固然重要,但是没有大而全或标准架构,需要根据实际资源、使用场景、应用特征等等,定制化的搭建及迭代演进。
网友评论