导读

打点是指在网站或者APP中加入一些统计代码,通过日志记录用户在 APP 内触发的一系列行为,包括点击、滑动等。打点上报后汇聚成用户行为日志,用户行为日志可用于报表统计、AB Testing、个性化推荐等,是分析用户、调整策略、迭代产品的重要依据。

日志中台做为百度内一站式打点解决方案,覆盖了厂内以百度APP为代表的大多产品,每天产生千亿级的打点日志PV。这些日志经过格式化之后,满足用户的各种数据消费需求,光是占用的存储资源每天达上百P。为了满足业务长周期的数据统计、分析、回溯等需求,需要大量的计算和存储成本,部分核心数据甚至需要永久存储。

但是,随着业务快速迭代发展,线上打点只增不减,单条日志越来越长,上报量越来越大,规模日渐膨胀。打点日志的无序增长,既影响打点服务的稳定,也带来计算和存储资源的增长。为了在资源有限的前提下,最大化打点日志的价值,需要对打点日志进行持续的治理,提升打点收益。治理手段包括无用点位的定位和下线、异常打点的发现和修复、已有打点的字段裁剪和上报机制优化、新feature放量或运营活动期间打点服务的稳定性保障等。

图片

△点位全生命周期治理

通过点位治理措施,对于正常需求导致pv上涨的点位,中台能够提前扩充资源,保障业务的高效发展;对于异常问题引起的pv上涨的点位,中台能够协助业务方排查潜在风险,减少业务隐患;对于无用打点,及时发现并完成点位下线,节省后续计算和存储资源;对于冗余打点引起pv上涨的点位,中台协助优化打点上报逻辑,实现高质量打点,推动业务方和日志中台的降本增效。因此,点位治理实践能够助力日志中台感知点位波动预先为正常流量的增幅留足空间,保证打点符合用户预期限制低质量有问题流量无序发展,为用户提高更优质量的打点体验,高效率高质量支持业务蓬勃发展。

图片

△全生命周期打点管理

01 要治理的问题和方案

图片

日志中台的成本治理实践主要分三个阶段:人工治理、半自动化治理、点位全生命周期标准化治理。在最开始的阶段,首要目标为与用户沟通,制止打点流量无序增长。因此采取人工治理的方式:由中台同学和点位相关业务同学沟通来推进点位治理,人工治理能够充分了解用户治理诉求,分析点位pv增长原因,在支持业务正常推进的基础上采取定制化的治理措施。通过人工治理的方式,在治理前期取得了一定的治理收益,但随着成本治理的不断推进,治理覆盖的点位、业务线和业务方不断增加,治理变得越来越复杂且难以持续跟进。参照人工治理阶段积累的经验,采用技术化的手段,升级到了半自动平台化治理,从治理实施的角度出发,实现流程化治理,推进了治理前发现异常点位、治理中介入点位治理和治理后成果展示与分析的状态流转,大大提高了治理效率。然而,点位治理不是一劳永逸的事情,为了更好的完成点位可持续治理,日志中台从点位全生命周期的角度出发,实现了点位全生命周期标准化治理,能够修复异常打点、优化冗余打点、下线无用点位,并总结点位相关特性,实现了依据点位特性的长期治理,在对打点的健壮性优化的同时提升了重复治理的效率。

1.1阶段一 人工治理

1.1.1 问题分析

打点用户作为日志中台的核心用户群体,是打点的发起者、使用者,因此是点位治理的主要执行者。打点用户只要有两个核心特点:打点目的多样,点位治理措施多样打点目的多样是指用户会根据实际业务要求进行打点,例如节日/活动流量打点、实验分析打点、实际需求打点等等。同时打点用户在实现点位治理时,也会有不同的实际操作,例如会选择优化打点代码、对打点实验进行固化或者打点下线、对实际需求打点进行缴费以保证计算和存储资源充足。人工治理阶段依靠着中台同学和业务同学的沟通合作能够在充分满足用户打点目的多样性的同时尽可能提供灵活、丰富的打点治理策略

图片

△问题分析

点位波动的原因能够从三个维度进行解析说明,分别是业务线、内部因素和外界因素。从业务线角度而言,不同业务线之间因其承担着不同的业务定位,因此其点位波动会受到业务整体的决策而波动,因此点位治理策略应当面向业务线特色而展开。对于较大的业务线,例如手百,需要明确到点位的波动是否与某个细节打点相关。而对于较为独立的业务线,例如贴吧,网盘等,中台更关注业务线整体pv的波动。对于内部因素而言,影响点位pv波动的因素是各种各样的,主要分为三大类,即需求上线导致的打点pv增幅,这其中有因为直接需求、级联需求或需求同步导致的pv涨幅(例如极速版同步手百主版)。有异常打点导致的pv增幅,其中主要包括代码本身异常、流量异常和打点时机异常。在外界因素方面,导致打点pv增幅的原因主要分为三部分:节假日、双十一等商业活动或热点直播导致的pv涨幅,以及实验变更的微观涨幅和APP大盘增长导致的宏观涨幅。综上所述,点位pv波动的因素是较为复杂的,因此点位治理的核心目标是针对各种复杂诱因导致的点位pv波动采取面向用户个性化的点位治理措施,实现高效率灵活的点位治理。

图片

1.1.2 解决方案

阶段一主要依靠人工治理,其步骤可以用以下DAG图说明,支持四大类点位治理模式【需求普涨、异常修复、活动流量和打点优化】,模版化的处理步骤能覆盖绝大部分点位治理场景。

图片

1.2 阶段二 半自动治理平台化

1.2.1 问题分析

图片

随着成本治理的不断推进,治理覆盖的点位、业务线和业务方不断增加,治理变得越来越复杂且难以仅靠人力沟通持续跟进,而点位治理方作为打点治理的主要发起方和跟进方,需要频繁的与业务方进行交流,以便于针对点位实际和业务现状发起点位治理。同时点位治理过程需要全过程记录,依靠人工治理架构的点位治理过程使用文档记录全过程,同时点位治理流程中产生的点位治理时间轴、点位治理总览、点位治理成果均以文档的形式记录会有展现效果差、依赖人力更新的问题。同时点位治理流程较为复杂,如果使用人力治理+文档记录的措施缺乏标准的状态流转,无法保证打点治理的高效和质量。

图片

△半自动化平台治理

1.2.2 解决方案

打点治理的涉及的方方面面非常多,按照时间顺序而言,主要分为异常点位的发现和挖掘、面向异常点位的治理实施、以及治理后成果的总结和治理全局分析。对于涉及的主体而言,打点治理主要涉及的被动主体为点位用户以及点位信息,主动主体为点位治理方,对点位本身而言,打点治理流程需要感知点位异常波动、整理点位相关基础信息【业务线、负责人、历史相关需求】等、最终整理完成点位自身特色信息【点位属性是活动点位、基础框架点位等】。对于点位治理方而言,需要针对异常点位发起点位治理【通过如流群内部消息面向业务同学】、需要根据点位自身情况选取点位治理策略【打点优化、异常治理、成本追缴】等,同时在点位治理流程中,点位治理负责人需要及时跟进点位治理情况,推进点位治理信息,在治理完成后需要总结点位治理结果报表,并完成阶段性总结。对于业务方而言,用户需要感知点位pv波动信息、点位治理需求并给出点位治理及时反馈。因此在打点治理的重要场景上,主要的难题为:需要形成点位治理【前期、中期和后期】的规范化治理流程,有效推进点位治理状态的流转【发现异常、介入治理、推进治理、完成治理】;由于点位治理是面向用户导向的,其中涉及到大量的沟通成本,为了加速办公效率,针对IM沟通需要做专门的优化。针对上述问题,日志中台推进了打点半自动化治理平台的建设,实现了治理标准流程化、办公沟通智能化、点位治理高效化

图片

△一站式成本治理平台

成本治理平台将打点治理分为三个阶段【治理前-异常波动点位挖掘阶段】,【治理中-目标点位介入治理阶段】,【治理后-治理成果展示&分析阶段】

在治理前期【异常波动点位挖掘阶段】,该阶段核心为实现一个定时例行任务,该任务定时获取所有点位的天级pv,并根据异常波动识别算法判别出异常点位,并组装该点位的其他相关信息(业务线、是否是实时流点位等),最终完成异常点位信息的下发和邮件通告。异常点位挖掘任务依托定时任务调度系统完成开发,实现算子高效配置,任务定时准确执行,能够有效挖掘出异常点位信息。

在治理实施中期【目标点位介入治理阶段】,按照点位治理状态的不同,分为三个核心页面进行综合治理,即待治理页面,正在治理页面和治理完成页面。其中待治理页面主要展示由【异常波动点位挖掘阶段】所得到的异常点位列表,在点位负责人甄别该点位确实符合点位治理要求后,即可一键建群触发点位治理流程。触发后,该点位即可展示在正在点位治理页面,针对目标点位治理,点位治理负责人即可按照【点位治理默认状态流转图】或【自定义算子点位治理状态图】完成点位治理,在治理过程中,平台使用企业办公IM企业机器人来实时推送点位治理模版信息【点位治理背景、点位治理缴费文档等】,进而加速点位治理过程。同时在点位治理过程中,数据库会记录点位状态变更时间轴,实时记录点位治理状态。当点位流程治理完成后,点位会移入已经治理完成的点位页面。已经治理完成点位页面会同步至指定MySQL数据库中,智能报表平台会针对该数据库做实时数据分析和可视化报表生成。

在治理后期【理成果展示&分析阶段】该阶段核心是展示指定时间范围内的治理效果【已经治理pv、已治理的点位个数】,以及分析相关指标【各个治理种类的点位数目、已经追缴的成本金额】。治理平台采取可视化智能报表平台完成对点位治理的趋势分析,按照时间顺序对已经治理的pv数和点位个数完成了对点位治理的分析

图片

△办公IM成本治理机器人

在点位治理过程中,点位治理负责同学需要和点位负责同学、点位相关RD有频繁且密集的沟通,为了提高业务沟通效率,点位治理平台接入 办公IM企业级开发机器人【成本治理机器人】,成本治理机器人实现了全流程的治理加速,在治理发起时,点位负责人能够针对异常目标点位一键发起群聊,该群聊名为【点位监控】(相关)点位流量上涨。在治理发起后第一时间,成本治理机器人会同步点位基本信息、点位涨幅pv等,通报使用自动化通报模版。在点位治理推进中,如流机器人支持发送自定义信息并@相关业务人员完成治理状态推进。

1.3 阶段三 点位全生命周期标准化治理

1.3.1 问题分析

图片

△打点全生命周期

点位治理不是一劳永逸的事情,为了更好的完成点位可持续治理,日志中台从点位角度出发实现了点位全生命周期标准化治理架构。打点本身是点位治理的重要对象,同时打点本身自身也有着足够的信息量,例如,点位本身会因为业务下线或业务场景的迭代而成为无用点位;点位本身会因为打点开发代码 BUG而成为异常点位或是冗余点位;同时点位自身因为其长期存在,进而会在一定时间内长期波动,导致需要点位治理频繁介入。因此点位治理问题需要在点位生命周期维度完成对无用点位的下线;对有异常问题的点位完成修复、对于冗余点位的优化;在点位长期波动角度,完成基于点位特性的高效治理,而非是机械重复的全流程点位治理。

图片

1.3.2 解决方案

1.3.2.1  基于点位特性持续治理

基于点位特性持续治理,图中是某运营活动相关点位pv波动图,图中可以清晰看到,该点位在所示周期内出现了三次点位波动,因为该点位属于活动运营性质点位,因此在春节期间、618活动期间以及暑假活动运营期间,出现了多次波动,如果按照常规治理手段,需要多次频繁介入,为了在持续性治理中提高治理效率,应当结合点位业务属性,构建出治理经验总结,在后续多次治理中不断完善治理属性,即可根据历史治理经验实现既定治理措施。我们将点位根据业务属性而形成的分类称之为“点位特性”,而根据点位特性的操作化治理称之为“基于点位特性的持续治理”,实践表明,基于点位特性的持续治理流程针对点位多次治理,大大加速效率。例子中的运营活动点位,在得知其活动属性的基础上,仅需关注涨幅与活动映射关系以及预估流量是否与预期相符合即可,无须重复治理流程。

图片

△基于点位特性持续治理

打点治理是一个长期持续性的操作,单个点位存在多次介入治理的可能性,因此考虑到点位的持续性治理是非常重要的。在长期的点位治理中,点位因其个性化特色,具有自身属性。结合点位自身特色与规则介入,能够在持续性治理操作中实现基于点位特性的治理。从点位特色出发,常见的点位种类有如下六种,分别为单需求类型点位、复合需求类型点位、活动属性类型点位、级联需求类型点位、实验类型点位、框架性质类型点位。其中不同点位种类具有自身的相应的特征,因此应当采取相关的治理策略,进而大大降低了二次治理的难度和工作量。

下面是常见点位特性的说明及相应的再次治理策略:

  • 单需求类型点位,该类点位上下游关系较为简单,点位定位明确,主要完成单一或固定类型的需求,因此其涨幅与需求之间关联,对于二次治理时,重点关注点位所对应的需求方即可,治理策略较为简单。
  • 复合需求类型点位,该类点位往往是多业务方共用打点,执行不同类型的需求,因此再次治理时,需要补充记录点位使用拓扑关系,完善点位下游关系
  • 活动类型点位,该类打点往往与节假日/运营活动强关联,例如小说相关打点往往和寒暑假密不可分,手百皮肤活动往往与运营活动强相关,对于此类打点,需要核实对应的活动,并保证容量充足即可。
  • 级联需求类型点位,该类打点往往提供一个基础性的功能,例如工具性质打点,这类打点并不直接作用于业务方,而是为业务方提供第三方能力,因此其上涨与自身无关,此类打点需要核实符合预期即可。
  • 实验类型点位,该类打点往往与策略实验放量相关,具有一定的活动周期属性,但是与活动属性点位不同的是,实验复合预期后可能会固化,需要核实长期上涨带来的费用。
  • 框架性质类型打点,该类打点作为手百等APP的基础打点,承载着多项核心功能,往往打点量级较大(单点位可达百亿)正常涨幅波动也较大(天级波动可达10亿上下),其波动需要结合DAU大盘涨幅进行分析,往往无法与某些需求直接关联。

    图片

    △治理角度的常见点位分类

    1.3.2.2  推进无用点位下线

    随着业务的持续迭代与推进,点位的状态也在不断更新,一些点位会逐渐成为无用点位。无用点位因其自身属性分为两大类:无流量点位和有流量无使用点位,其中无流量点位往往因为实验的下线或业务线的变更导致点位无流量,而有流量无使用点位往往因为业务的优化升级或是日常迭代导致点位依然有上报,但是不再有下游使用,上报的数据内容也不再有访问记录。其中无流量点位会消耗一定的数据分析和维护成本,并对相关分析带来一定影响,而有流量无使用的点位则会占用一定的计算和存储资源。因此,推进无用点位下线是点位全生命周期治理的重要一环,日志中台及相关数据存储团队形成了完善的无用点位下线流程。

图片

△无用点位下线流程图

在点位负责人完成上线后,中台及相关数据存储团队会进行例行的无用点位识别任务,当识别出无用点位后,会通知相关点位负责人,若点位负责人支持点位下线,则点位会进入预下线状态,当点位在一定时间段内仍无相关业务反馈,则该点位会完成下线。若点位负责人因业务特殊需求,则能够继续保留该点位,若该点位超过三次被识别为无用点位则会报备总监确认,结合业务实际则可以录入白名单。

图片

△基于鉴权信息访问判别来源

无用点位识别任务的核心在于识别出有流量但是没有下游使用的点位,识别任务会根据相关业务的若干数据表的鉴权信息筛选出相关的下游访问来源,这些下游访问来源包括但不限于实验分析平台、数据分析平台、报表平台,相关业务使用和一些定时例行任务。当筛选出相关点位的具体下游访问来源之后,即可联合下游访问来源的具体业务信息识别出该点位是否确实无人使用,进而判断出无用点位。

1.3.2.3  异常点位修复&冗余点位优化

图片

△异常点位修复&冗余点位优化

为了更好的完成点位治理,需要对打点潜在问题进行分析,进而能够根据潜在问题制定相应的解决方案。结合打点实际,业务实际和中台业务逻辑可以发现,打点存在有几类问题:冗余打点浪费了一定的资源,多条打点公共参数相同,仅仅业务参数有差异,但是依然分开若干条上报;对于比值类实验指标,不同的打点量级的实验效果是一致的,但依然打了较大量级的日志条数;异常打点不符合业务预期,异常上报了一定量级的日志,点位缺乏分级别处理无法做到重要点位高优先级处理。为了解决上述问题,我们进行了针对性的方案优化,针对冗余打点采取合并上报、打点采样等打点优化措施,针对异常打点采取【发现异常、确认异常,最终修复异常】的工作流程。

02 项目收益&业务反馈

日志中台点位治理实践项目对点位实现各种灵活治理措施,包括但不限于打点优化、异常修复、成本追缴和活动流量观察。在点位治理项目上线后,助力业务方发现10+潜在风险点,手百每人每天上报日志减少上百条。治理项目每年治理上千亿pv,节省数百万的用于计算、存储的年化成本费用

图片

在治理过程中,我们坚持用户导向,点位治理流程协助用户方发现很多问题,排查了潜在异常,节约了很多资源,也收到很多高质量的业务方真实反馈。

图片

△业务高质量反馈

03 总结与展望

图片

△总结与展望

日志中台打点治理实践方案已经取得了一定的项目收益,协助用户优化了了打点体验,提升了打点质量,升级了业务性能,同时也助力了手百等业务的稳健、高质量发展,在未来日志中台会持续打造业界领先的打点治理方案,进一步优化用户体验,帮助用户精细化排查点位波动的原因,更为精准化的定位问题原因,精密化提升打点收益与产出,切切实实使每一次打点都取得超出预期的收益。同时进一步助力业务发展,降低手百每人每天上报的日志数目,在有限的打点资源内尽可能创造更高规模的收益。同时随着日志中台对于事件的支持,打点治理方案会探索基于事件的pv治理策略,支持更细粒度的打点治理。

-----END------

推荐阅读

从数字化到智能化,百度 SRE 数智免疫系统的演进和实践

走!Ké武汉,看百度智能云生态大会

名列前茅!百度文心大模型4.5及X1在中国信通院“方升”大模型基准测试中表现优异

飞桨新一代框架3.0正式发布:加速大模型时代的技术创新与产业应用


百度Geek说
246 声望54 粉丝