揭秘阿里云Flink智能诊断利器——Fllink Job Advisor

news2024/10/9 10:29:33

引言

阿里云实时计算Flink作为一款专业级别的高性能实时大数据处理系统,它在各种业务场景中都发挥了关键的作用。丰富而复杂的上下游系统让它能够支撑实时数仓、实时风控、实时机器学习等多样化的应用场景。然而,随着系统的复杂性增加,用户在日常使用中往往需要面临诸如复杂的数据开发报错分析、任务运行报错处理、任务运行调优等疑难问题。

然而,由于错误日志分析透出和全链路异常诊断能力方面存在一定的不足。这些问题通常较难通过自助机器人进行拦截和排查。由此,用户不得不通过提交工单等方式寻求支持,这种情况又会导致人工服务单量大幅上涨,给运维团队带来了不小的压力。

为了解决这些问题,我们设计了一款数智运维工具:Flink智能诊断(Advisor)。这个工具的目标是解决用户在使用Flink全托管产品全生命周期中可能遇到的各种难题。Flink智能诊断通过精准的错误诊断和优化建议,能够提升用户使用Flink的体验,降低了对人工服务的依赖。

问题分解

通过对大量的Flink用户案例分析,我们将常见的Flink的问题分成错误日志分析、异常分析(影响作业当前运行) 、风险分析(不影响当前运行) 三个大类,并为其制定了明确的分析项目。

错误日志分析

分析内容为当前作业抛出的日志栈,分析包含两个阶段:

  • 开发阶段: 开发状态的异常日志栈分析,如常见的语法错误、表模式配置错误等。
  • 运行: 作业运行过程中产生的异常日志栈分析,如上游binlog过期、Time字段存在Null脏数据等。

异常分析

主要分析内容为影响作业当前运行的问题,分析包含三个阶段:

  • 启动阶段: 启动文件分析、依赖的云资源分析、数据源权限探测、网络分析、Session集群分析等。
  • 运行阶 : Checkpoint检查、权限检查、状态检查等。
  • 停止阶段: 停止速度分析。

风险分析

主要分析内容为不影响作业运行的问题,分析包含两个阶段:

  • 配置阶段:JobGraph检查、版本检查、HA检查等
  • 运行阶段:Checkpoint检查、作业运行环境检查等。

核心技术

工程架构

image.png

Flink智能诊断的技术架构分为数据层、服务层和业务层

数据层

向服务层提供诊断所需的实时数仓能力,它将基础集群(Kubernetes)、产品引擎(VVP&Flink)的基础数据,经过大数据&AI计算引擎进行ETL、聚类、分析,最终将数据存储到数智平台的实时数仓中。这些数据包含用户Flink作业全生命周期的完整可观测数据,为分析用户全托管Flink产品提供底层数据支持。

服务层

服务层提供了两种能力,分别为错误日志分析服务,用于分析用户开发、运维过程产生的实时日志信息;以及作业诊断服务,提供更多纬度的数据分析能力,包含数据层提供的Flink全生命周期数据。两种能力通过接口层提供错误日志诊断、作业健康分、作业深度诊断服务,为业务层提供多样的作业探查能力提供底层支持。

  • 错误日志分析服务:借助数智平台提供的日志聚类&推荐算法,建立服务于Flink业务场景的错误日志知识库,沉淀了 用户报错信息输入 - 错误日志库聚类日志 - 产研/SRE分析 - 日志打标 - 回馈用户解决方案 这样一套完善的错误日志分析方法。相比于传统工单方式,错误日志诊断服务打通用户问题直接触达产研的渠道,真正帮助用户解决面临的高优报错问题,提高了用户问题解决的效率。错误日志诊断服务通过引入日志聚类能力,解决传统日志分析场景通过正则匹配方式面临的信息拟合准确度问题以及海量信息去重的难题。其他关于日志聚类细节会在技术创新部分详解。
  • 作业诊断服务:调度引擎是智能诊断的大脑,通过读取数据层Flink完整生命周期的数据,会定期轮训执行决策树,并产出诊断结果。决策树中沉淀了Flink产研/SRE数载打磨Flink产品沉淀下来的专家经验,包含作业报错、作业性能、作业配置、底层运行环境风险等。将这些作业面临的风险通过数条诊断项形式透出给接口层,帮助用户实现全托管、免运维的产品体验。

业务层

通过调用接口层封装了不同形式的Flink诊断数据,实现了多入口的数据查询能力,包括VVP(阿里云实时计算Flink用户作业控制台)、钉钉答疑机器人和ABM诊断等。不同使用方通过以上入口获取到Flink作业的异常信息以及解决方案,最终帮助终端解决作业异常,助力Flink实时计算产品稳定流畅运行。图片Flink智能诊断中日志聚类&推荐部分算法侧整体链路如图所示,整体分为两个阶段:

  1. 知识沉淀:面向大量日志,通过算法提取关键信息并沉淀在知识库中。
  2. 日志诊断:通过报错日志内容,从知识库中匹配相应的原因和解决方案。

主要提供两大核心能力:

  1. 诊断能力:实时为错误日志匹配相应的原因和解决方案,提供日志诊断能力。
  2. 自动化分析能力:定时对未命中错误日志进行分析,提升专家经验集成效率。

技术创新

诊断能力

日志实时诊断面临的最大问题是日志数量庞大且信息碎片化严重,无法有效提取关键信息。为了解决这个问题,Advisor建立了面向Flink错误日志的日志知识库,通过算法提取日志中的信息,并结合专家经验进行聚合,沉淀关键信息。日志聚类算法主要流程如下:

  1. 冗余信息清洗[日志预处理和编码]:去除非结构化信息,减少信息干扰。
  2. 日志特征构建[分词&特征选择]:提取日志特征,将日志转化为结构化表征。
  3. 层次聚类:基于日志特征间的相似度,对日志进行聚合。
  4. 结合标注:结合专家经验对类别进行调整和细化,提升结果准确性。

image.png
当日志诊断算法服务被触发时,算法的匹配逻辑如下:

  1. 规则:优先根据Flink产研/SREs预先定义的规则匹配相应的原因及解决方案。
  2. 算法:计算日志内容与知识库中类别的相似度对日志进行归类,给出对应的原因和解决方案。

有关日志诊断相关的原理可以参考基于 Flink ML 搭建的智能运维算法服务及应用,如需更进一步体验日志聚类,可以参考SREWorks开源的日志聚类算法SREWorks v1.5 版本发布 | 基于实时作业平台的日志聚类开源

自动化分析能力

为了能够降低专家经验集成和产品化的门槛,提升产研共建的效率,Advisor构建了日志自动化分析能力。

  1. 定时收集产品未命中的错误日志信息
  2. 结合知识库中沉淀的结果以及专家经验对未命中的错误日志进行聚类,将海量日志聚合成数量有限的日志类
  3. 根据类别调用频率进行排序

日志自动化分析能力带来的核心优势如下:

  1. 实时性:能够帮助产研和SRE实时感知日志匹配情况。
  2. 高效性:明确给出了产品当前无法解决的日志类别,给产品功能完善提供了明确的方向。同时算法还能分析已有规则的不足,实现查漏补缺。
  3. 低门槛:算法对海量日志进行了去重并给出了关键词,降低了产研的标注成本和门槛。

功能实战

开发态错误日志分析

在Flink全托管开发控制台作业开发页面,您可以使用开发态错误日志分析:

  1. 登录实时计算控制台。
  2. Flink全托管 页签,单击目标工作空间 操作 列下的 控制台
  3. 在左侧导航栏上,选择 应用 > 作业开发
  4. 编写SQL后,点击验证,可查看错误日志的分析。

实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell

image.png

查看健康分

在Flink全托管开发控制台作业运维页面,您可以查看作业的健康分

  1. 登录实时计算控制台。
  2. Flink全托管 页签,单击目标工作空间 操作 列下的 控制台
  3. 在左侧导航栏上,选择 应用 > 作业运维
  4. 您可以查看以下信息。

实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell

image.png

查看运行态日志分析

在Flink全托管开发控制台作业运维页面,您可以使用开发态错误日志分析

  1. 登录实时计算控制台。
  2. Flink全托管 页签,单击目标工作空间 操作 列下的 控制台
  3. 在左侧导航栏上,选择 应用 > 作业运维
  4. 单击目标作业名称。
  5. 在作业详情页面,单机 作业探查。
  6. 在左边可切换运行日志、启动日志、异常信息可查看运行态日志分析。

实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell

图片

对作业进行诊断

在Flink全托管开发控制台作业运维页面,您可以通过诊断功能,查看作业详细的风险原因及平台所给的建议。

  1. 登录实时计算控制台。
  2. Flink全托管 页签,单击目标工作空间 操作 列下的 控制台
  3. 在左侧导航栏上,选择 应用 > 作业运维
  4. 单击目标作业名称。
  5. 在作业详情页面右上角,单击 诊断 。
    图片
  6. 在页面左侧,查看诊断结果和优化建议。
    图片

总结

Flink智能诊断的核心能力主要体现在:1、 产品体验:产品控制台开发引入了秒级实时报错诊断功能,覆盖了作业从开发态到运维态的全流程,方便用户自助解决问题,降低工单量。2、技术创新:采用了日志聚类和推荐算法来替代传统的正则表达式,不仅解决了海量日志“去重”难题,同时也大幅降低了专家业务经验的集成门槛。3、根因建议:覆盖异常场景,提供100%准确匹配异常原因诊断以及解决方案,敏捷发布热更新即刻生效。4、产研共建:智能诊断是SRE、研发、服务团队、产品多团队联合共建的结果,属于全链路专家经验产品化的产物,已形成常态化运作及维护机制,保障持续迭代优化。Flink智能诊断上线至今,在用户PV、问题覆盖率等几个方面都取得了较好的阶段性结果:

  • 每个Flink用户平均每天使用诊断3.5次。
  • 作业运维类咨询工单(报错日志&运行异常)下降了28%。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

判断数的奇偶性

1 问题 如何用一个简单的程序判断一个数的奇偶性。 2 方法 import java.util.Scanner; public class HOMEWORK{ public static void main(String[] args){ System.out.println("请输入一个数"); int input new Scanner(System.in).nextInt(); if(input % 2 0){ Sys…

wsl下安装centenos7以及遇到问题报错解决

安装 ①CentenOs7-WSL 下载地址 https://github.com/yuk7/CentWSL ②解压下载的CentenOs7到自己想要安装的位置,解压的目录就是CentenOs的安装目录。刚开始是没有ext4.vhdx的,安装完成就出现了 ③安装完成,再次运行CentenOs.exe就可以使用了…

软件测试工程师如何从功能测试转成自动化测试

功能测试转成自动化测试,答案就三个字:“靠学习”。 学习自动化的方法无非是三种: 一、靠培训(下方有如何选择培训机构) 在相对有氛围的学习环境中来学习自动化测试,这是一个较快学习的方法。二、靠自学自…

切片辅助超推理(SAHI )技术原理介绍

小物体检测是指识别和定位数字图像中尺寸相对较小的物体的任务。这些对象通常具有有限的空间范围和低像素覆盖率,并且由于它们的小外观和低信噪比可能难以检测。 小物体检测的应用 小物体检测有多种应用: 监视和安全:识别和跟踪拥挤区域中的小物体,以增强公共安全。自动驾…

c盘怎么清理?这样做可以快速释放电脑空间!

案例:我电脑c盘可用空间已经不多了,出现了标红的现象,我想清理一下我的c盘。怎么清理c盘才科学和安全,才不会误删重要的文件?有没有小伙伴分享一下解决的方法! C盘作为电脑系统的核心盘符,经常…

xxl-job Study Notes

文章目录 1 xxl-job 快速入门1.1 xxl-job是什么1.2 为什么需要xxl-job1.2.1 定时任务1.2.2 分布式任务调度1.2.3 分布式任务调度特点 1.3 xxl-job简介1.4 部署安装——基于docker1.5 xxl-job表介绍1.5 编写任务代码1.5.1 xxl-job配置1.5.2 任务代码1.5.3 分布式任务测试1.5.3.1…

计算机系统2022期末

计算机系统2022期末 本课程的复习请以知识点复习为重,全部内容共有大小280个知识点,都可能在期末考试出现,仅通过往年试卷复习是远远不够的,往年试卷仅能作为部分知识点的检测以及题目类型的大致参考,复习本课程需要尽…

对球面线性插值的理解

【前言】 线性插值是点A到点B间距离的均匀变化,球面线性插值是点A到点B的角度均匀变化,前者应用范围很广,后者主要应用平滑旋转 【球面线性插值求解】 球面线性插值(Spherical linear interpolation,Slerp&#xff…

权限系统设计方案

1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带…

知识变现海哥:知识博主私域卖课三大途径

哈喽,大家好,我是海哥,知识付费变现创业教练,教育公司培训总监,从事知识付费变现咨询10年,已助力3000人实现知识付费变现。 私域这里主要指的就是微信,这里跟大家介绍三种私域卖课的方式。 1 朋…

Nsis简单打包Unity window程序

制作步骤 1.Unity发布一个window exe程序 2. 创建一个脚本,Test.nsi,放置在发布文件中 3. 编写命令,使用Nsis进行编译运行(脚本拖拽到Nsis编译器中,自动运行) 4. 编译成功,发布文件夹内生成一个SetUp.exe安装程序 5.…

一文理解数据倾斜

什么是数据倾斜 并行处理数据集的某个task处理的数据明显多于其他task。 发生数据倾斜的原因 一个词概括:shuffle 在Shuffle的过程中,同样一个Key一般都会交给一个Task去处理,如果某个key特别多,如上图中task3的key有80亿,这样就会造成别的task很快算完,而task3却一直在…

项目管理专业人员能力评价等级证书(CSPM)是什么?

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…

判断两个矩形是否相交(Rect Intersection)

0x00 Preface 最近在开发一个2D组态图形组件的过程中,里面的数学模块,涉及到两个矩形是否相交的判断。 这个问题很多年前就写过,算是个小的算法吧。 网络上搜索一下,有很多思路,有一些思路要基于多种组合的判断&…

618有哪些数码好物值得买?2023年618数码好物必买清单

618作为年中大促节点,很多的产品会迎来历史最低价,正是入手数码产品的最佳时间点。很多人在选择物品时难免会产生618有哪些数码好物值得买的疑惑?为此,我也整理了一份618数码好物清单,都是一些实用性很强的数码好物,希…

【2023年高考作文】七套卷子全汇总及AI一分钟版本作答

2023年高考作文-全国甲卷 科技与时间 当今社会,科技已经成为人们生活的必需品。它给我们带来了很多便利与机遇,让我们能够更好地掌控时间。然而,我们回顾一下自己的生活,会发现我们似乎已经依赖了科技,甚至成为了时间…

django-vue-admin开源项目环境调试(靠谱)

一、源码地址 注意,一定要使用这个地址。(使用其他地址下载下来的感觉代码缺失,踩了大坑) django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 djangodjango-rest-frame…

消防应急照明和疏散指示系统在某洁净医药的设计与应用

【摘要】:A100型消防应急照明和疏散指示系统具有集中控制,灵活度高和可靠性强等特点。系统采用17寸工业平板电脑,采用Windonws7系统,可支持联动报警、系统监控、故障报警、自检、备电、记录存储与查询、导光流、权限控制等多项功能…

30、js - Promise

一、Promise的3种状态: 1、作用:了解Promise对象如何关联的处理函数,以及代码执行顺序 2、一个Promise对象,必然处于以下几个状态之一: pending:初始状态,页面一旦调用Promise对象,Promise对象就…

Hive中的DDL操作

文章目录 Hive中的DDL操作一、数据库(database)相关操作1. 创建数据库1)语法2)案例 2. 查询数据库1)展示所有数据库2)查看数据库信息 3. 修改数据库1)语法2)案例 4. 删除数据库1&…