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

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

作者: 藏红

一、引言

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

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

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

二、问题分解

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

错误日志分析

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

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

异常分析

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

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

风险分析

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

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

三、核心技术

工程架构

1

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

数据层

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

服务层

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

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

业务层

通过调用接口层封装了不同形式的 Flink 诊断数据,实现了多入口的数据查询能力,包括 VVP(阿里云实时计算 Flink 用户作业控制台)、钉钉答疑机器人和 ABM 诊断等。不同使用方通过以上入口获取到 Flink 作业的异常信息以及解决方案,最终帮助终端解决作业异常,助力 Flink 实时计算产品稳定流畅运行。

2

Flink智能诊断中日志聚类&推荐部分算法侧整体链路如图所示,整体分为两个阶段:

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

    主要提供两大核心能力:

  3. 诊断能力:实时为错误日志匹配相应的原因和解决方案,提供日志诊断能力。

  4. 自动化分析能力:定时对未命中错误日志进行分析,提升专家经验集成效率。

技术创新

诊断能力

日志实时诊断面临的最大问题是日志数量庞大且信息碎片化严重,无法有效提取关键信息。

为了解决这个问题,Advisor 建立了面向 Flink 错误日志的日志知识库,通过算法提取日志中的信息,并结合专家经验进行聚合,沉淀关键信息。日志聚类算法主要流程如下:

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

2+

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

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

有关日志诊断相关的原理可以参考 https://mp.weixin.qq.com/s/586ZmVfDDy61W6lXElQpjA,如需更进一步体验日志聚类,可以参考 SREWorks 开源的日志聚类算法 https://mp.weixin.qq.com/s/-1fesZf9pvsSMWOSwO5SQw。

自动化分析能力

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

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

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

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

四、功能实战

开发态错误日志分析

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

  1. 登录实时计算控制台

  2. Flink 全托管 页签,单击目标工作空间 操作 列下的 控制台

  3. 在左侧导航栏上,选择 应用 > 作业开发。

  4. 编写 SQL 后,点击验证,可查看错误日志的分析。

3

查看健康分

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

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

4

查看运行态日志分析

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

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

5

对作业进行诊断

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

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

五、总结

Flink 智能诊断的核心能力主要体现在:

1、 产品体验:产品控制台开发引入了秒级实时报错诊断功能,覆盖了作业从开发态到运维态的全流程,方便用户自助解决问题,降低工单量。

2、技术创新:采用了日志聚类和推荐算法来替代传统的正则表达式,不仅解决了海量日志“去重”难题,同时也大幅降低了专家业务经验的集成门槛。

3、根因建议:覆盖异常场景,提供 100%准确匹配异常原因诊断以及解决方案,敏捷发布热更新即刻生效。

4、产研共建:智能诊断是 SRE、研发、服务团队、产品多团队联合共建的结果,属于全链路专家经验产品化的产物,已形成常态化运作及维护机制,保障持续迭代优化。

Flink 智能诊断上线至今,在用户 PV、问题覆盖率等几个方面都取得了较好的阶段性结果:

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

查看更多技术内容


更多内容

img


活动推荐

阿里云基于 Apache Flink 构建的企业级产品-实时计算 Flink 版现开启活动:
0 元试用 实时计算 Flink 版(5000CU*小时,3 个月内)
了解活动详情:https://free.aliyun.com/?pipCode=sc

image.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
5月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
863 7
阿里云实时计算Flink在多行业的应用和实践
|
4月前
|
存储 运维 Cloud Native
"Flink+Paimon:阿里云大数据云原生运维数仓的创新实践,引领实时数据处理新纪元"
【8月更文挑战第2天】Flink+Paimon在阿里云大数据云原生运维数仓的实践
292 3
|
5月前
|
数据处理 API 调度
深入理解Flink Flink Job提交和Flink Graph详解
Apache Flink通过其高效的作业提交流程及灵活的Graph表示,为处理大规模数据流提供了强大的能力。理解Flink Job的提交与任务调度,以及Flink Graph的构建和优化,是深入掌握Flink并高效利用其处理能力的关键。Flink的设计哲学和强大功能使其成为实时数据处理领域的重要选择之一。
202 3
|
5月前
|
消息中间件 SQL Kafka
实时计算 Flink版产品使用问题之如何实现两个阿里云账号下的Kafka进行数据的互相传输
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
搜索推荐 数据处理 调度
阿里云实时计算:引领企业走向实时智能决策之路
数据整合:整合交通摄像头、GPS定位等多种数据源。 实时路况分析:分析实时路况,预测交通拥堵。 智能调度:基于分析结果进行车辆调度和路线规划。
|
5月前
|
SQL 运维 关系型数据库
|
5月前
|
SQL 运维 监控
|
5月前
|
SQL API 数据处理
实时计算 Flink版产品使用问题之如何避免集群重启后job信息和运行状态丢失
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
1月前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
1168 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎

相关产品

  • 实时计算 Flink版