Hawkeye:助力TISPLUS实现数据化运营

背景

阅读本文的同时,建议大家先阅读洪震的文章《阿里集团搜索中台TisPlus》。TISPLUS平台的数据分析能力主要由hawkeye提供,但是之前存在如下几个问题:1.数据化场景的功能没有凸显,隐藏较深;2.产品形态设计单一,没有一个较好的产品闭环引导用户关注数据化的结果;3.数据分析内容简单,覆盖面不足,远远达不到让用户数据化运营服务的目标;4.重点关注了数据分析的结果,但缺少衡量数据分析结果为搜索服务本身带来的价值大小。我们深知数据必须和业务、平台本身做深度结合才能产生其核心价值,为了助力TISPLUS平台数据化能力建设,更好的发挥hawjeye的作用,我们项目小组进行了诸如数据化需求调研分析、产品视觉稿设计、hawkeye平台拆分、在TISPLUS平台落地数据化等一系列工作。

hawkeye简介

hawkeye是一个数据分析产品,定位于协助维护及优化线上系统,包括但不限于ha3、sp、igraph等引擎,目前主要基于tisplus平台,进行ha3引擎的数据分析以及引擎优化,诸如慢查询、引擎schema合理性、服务稳定性、资源配置合理性的检测及优化等。

系统简介

1.hawkeye平台经过拆分后大体分为三部分

  • hawkeye-blink:基于Blink完成数据处理的工作,重点是访问日志分析、全量数据分析等,该工程侧重底层的数据分析,借助Blink强大的数据处理能力,每天对于TISPLUS平台所有Ha3应用的访问日志以及全量数据进行分析,工程处理流程图如下:

  • hawkeye-experience:基于hawkeye-blink的分析结果进行更加贴近用户的分析,比如字段信息监测,包括字段类型合理性,字段值单调性监测等,除此之外还包括但不限于kmon无效报警、冒烟case录入情况、引擎降级配置、内存相关配置、推荐行列数配置以及切换时最小服务行比例等检测,hawkeye-experience工程的定位是做一个引擎诊断规则中台,将平时运维人员优化维护引擎的宝贵经验沉淀到系统中来,让每一个新接入的应用可以快速享受这样的宝贵经验,而不是通过一次次的踩坑之后获得,让每位用户拥有一个类似智能诊断专家的角色来优化自己的引擎是我们的目标,也是我们持续奋斗的动力,其中hawkeye-experience的数据处理流程图如下所示:

  • hawkeye-console:web层,提供hawkeye分析结果的各种api以及可视化的监控图表输出。

2.TISPLUS-Ha3平台:搜索引擎服务平台,目前接入了商品中心IC、聚划算、村淘、盒马、评价、优酷、咸鱼、飞猪、lazada等重要业务;
3.TISPLUS-sp平台:sp+ha3组成一个完成的引擎服务;
4.airflow/matt:搜索调度平台(后更名为matt),hawkeye有约上百个分析任务,有些是脚本式任务,有些需要上传资源文件,诸如java jar,bash script等,每天有定时触发以及手动触发等多种类型,airflow/matt很好的支持了hawkeye的任务调度;
5.容量评估平台:刚上线的应用如何申请资源?有点懵,别上火,容量评估告诉你,容量评估数据的得出,得益于heracles(压测平台)支持大促压测、日常化压测以及容量评估。
6.成本平台:数据分析结果为搜索服务带来的价值几何?成本平台衔接数据化运营及其价值,服务优化带来的价值清晰可见;
7.sophon:智能化运维平台,目前主要从sophon获取应用关于引擎的一些配置信息,后续将和智能化运维结合,更好的发挥hawkeye在数据化运营这块的作用。

tisplus数据化场景&现阶段成果

数据大盘

由原先的混合平铺tag改为单独入口,数据大盘包括内容有:服务总览、Ha3引擎监控指标、Ha3引擎分析指标、成本指标、sp监控指标、资源浪费情况等,是对业务全方位的重点数据展示,通过数据大盘,业务方可以轻松查看业务各个细节数据,时刻做到心中有“数”。其中慢查询相关的分析有慢查询特征分析,慢查询数变化趋势等。

一键诊断

一键诊断的目的是让用户不需要理解系统复杂度的前提下仍然清楚的了解自己引擎的健康状态,做用户的智能诊断专家,因此我们推出健康分这一指标用于衡量引擎健康状态,用户通过健康分可以明确知道自己的服务健康质量如何。同时每一项都给出了诊断时间,配置不合理的简要描述以及详情,优化的收益,并给出子项的健康分以及优化的链接,诊断时间根据数据源的性质分为T+1的检测和实时的检测。

  • 诊断决策:诊断项事先需要定义好相应的规则,规则的获取来自实际的运维经验以及引擎的配置要求等,目前主要包括服务稳定性性检测,资源配置检测以及字段信息检测三大类共计九个小项的检测,将获取的信息经过规则判断,得到诊断分析的结果,同时为相应的诊断项赋予相应的权重和计算子项健康分,每一个诊断项根据其重要程度分为Not_important、important、Very_important三个等级;
  • 计算应用健康分:目前应用健康分计算较为简单有效,仅是将各个子项的健康分以及权重做线性加权得出。

一键诊断的页面触发逻辑详见下图:

目前一键诊断的产品形态如下图所示,当业务处于正常状态时诊断结果如下图所示:

当诊断结果显示应用有需要优化的问题时诊断结果如下图所示:

成本趋势

数据化运营最为关键的点在于如何去衡量数据化带给平台的价值。TISPLUS和成本系统打通之后,任何有价值的优化都得以在成本系统上体现,结合TISPLUS,我们在用户最常运维的页面加入成本趋势,用户可以看到自己服务的累计总成本与累计节省成本,不同时间段的成本对比,与成本相关的操作记录,让每一步的优化与成本下降有“据”可查,同时激励用户持续不断的优化引擎,达到效率和稳定性的一个平衡。

应用日报

平台做了许多数据化的feature,但是数据化的内容,少即是多,我们需要把最精简的,最核心的,最需要用户关心的数据透出,因此我们将这些数据化内容进行分类筛选,选出最核心的数据每天定时发给业务方。我们挑选了诸如成本信息、稳定性信息、诊断信息三部分最核心的信息作为邮件内容发送给业务负责人。

经过上述这些场景的落地,基本形成数据大盘、一键诊断、成本趋势、应用日报这样一个有效的闭环,通过持续的优化线上系统,最终达到效率和稳定性的平衡。如果你对数据分析和引擎优化方面有心得,欢迎与我交流,也欢迎有才的你加入搜索事业部。

Hawkeye:助力TISPLUS实现数据化运营_第1张图片

你可能感兴趣的:(运维,java)