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

简介: 背景 TISPLUS平台的数据分析能力主要由hawkeye提供,但是之前存在如下几个问题:1.数据化场景的功能没有凸显,隐藏较深;2.产品形态设计单一,没有一个较好的产品闭环引导用户关注数据化的结果;3.数据分析内容简单,覆盖面不足,远远达不到让用户数据化运营服务的目标;4.重点关注了数据分析的结果,但缺少衡量数据分析结果为搜索服务本身带来的价值大小。

背景

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

hawkeye简介

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

系统简介

hawkeye平台.png | center | 704x479

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

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

Blink工程数据处理流程图.png | center | 704x288

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

hawkeye-experience.png | center | 704x623

  • 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三个等级;
  • 计算应用健康分:目前应用健康分计算较为简单有效,仅是将各个子项的健康分以及权重做线性加权得出。

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

一键诊断3.png | center | 704x390

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

一键诊断2.png | center | 704x501

当诊断结果显示应用有需要优化的问题时诊断结果如下图所示:
一键诊断4.png | center | 704x308

成本趋势

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

应用日报

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

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

image.png

相关文章
|
搜索推荐 C++ 开发者
VSCode安装使用教程,保姆级!
本文介绍了Visual Studio Code(VS Code)的安装和基本使用,包括从官网下载安装包,按照步骤在Windows系统上安装,以及设置个性化主题。此外,还强调了安装插件以增强功能,例如安装简体中文插件,并展示了如何搜索和安装插件。VS Code作为一个免费、开源的轻量级编辑器,其丰富的扩展性和高效性使其成为开发者工具的首选。
|
Java Linux 开发工具
Jenv 多版本JDK管理
Jenv 可以对多版本JDK进行管理
|
机器学习/深度学习 人工智能 算法
《AI芯片:如何让硬件与AI计算需求完美契合》
在人工智能快速发展的今天,AI芯片成为推动该领域前行的关键力量。AI芯片如同“超级大脑”,支撑着从智能语音助手到自动驾驶汽车等各种复杂应用。它通过GPU、ASIC和FPGA等架构,优化矩阵运算、内存管理和数据传输,满足大规模数据处理需求。尽管面临通用性和成本挑战,未来AI芯片有望在异构计算、新兴技术和降低成本方面取得突破,为AI发展注入强大动力。
752 17
|
安全 API 决策智能
Workforce 应用示例:黑客松评审团
本文展示了使用CAMEL多智能体系统的Workforce模块创建一个黑客松评审团,通过多个性格各异的智能体协作,对项目进行评审。系统设置了具备不同人格和评审标准的智能体,如注重技术细节的工程师和追求创新的创业者。 评审团对一个基于CAMEL-AI的个性化学习助手项目进行了评价,该项目致力于解决教育个性化不足的问题。智能体们一致认为项目技术扎实、创新性强,但部分功能尚待完善。 文章展示了Workforce模块在复杂任务处理中的高效性,并鼓励将该示例扩展到更多需要多样化视角的应用场景。
640 11
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
4236 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
Java 开发者
Jenv多版本JDK管理大揭秘:动态切换、轻松配置,一文让你彻底解锁!
【8月更文挑战第25天】Jenv是一款强大的Java版本管理工具,它使开发者能够在不同的项目中灵活使用多个JDK版本。通过环境变量管理和命令行操作实现版本切换。安装简便,配置快捷。只需几条命令即可添加、查看及切换JDK版本。示例展示了如何在项目中运用不同JDK版本编译与运行程序,极大提升了开发效率和灵活性。
2126 0
|
人工智能 运维 开发者
CodeFuse 开源官网上线啦~
CodeFuse是一个致力于开发大型代码语言模型以支持软件全生命周期的项目,涵盖设计、编码、测试等阶段,旨在提供创新的解决方案,优化开发者体验。其开源官网提供项目背景、相关AI开发项目展示、详细文档及贡献指南。团队已推出多个代码模型和开源工具,并在相关领域有学术成果和行业奖项。感兴趣者可通过GitHub、HuggingFace和魔搭社区主页联系或关注。
1566 0
CodeFuse 开源官网上线啦~
|
Java API 数据处理
学会在Java中使用流式API
学会在Java中使用流式API
|
SQL 消息中间件 存储
【一文看懂】使用hape部署分布式版Havenask
本次分享内容为使用hape部署分布式版Havenask,共2个部分组成(部署分布式版Havenask集群、 分布式相关问题排查),希望可以帮助大家更好了解和使用Havenask。
165433 6