阿里云实时计算Flink作为一款专业级别的高性能实时大数据处理系统,它在各种业务场景中都发挥了关键的作用。丰富而复杂的上下游系统让它能够支撑实时数仓、实时风控、实时机器学习等多样化的应用场景。然而,随着系统的复杂性增加,用户在日常使用中往往需要面临诸如复杂的数据开发报错分析、任务运行报错处理、任务运行调优等疑难问题。
然而,由于错误日志分析透出和全链路异常诊断能力方面存在一定的不足。这些问题通常较难通过自助机器人进行拦截和排查。由此,用户不得不通过提交工单等方式寻求支持,这种情况又会导致人工服务单量大幅上涨,给运维团队带来了不小的压力。
为了解决这些问题,我们设计了一款数智运维工具:Flink智能诊断(Advisor)。这个工具的目标是解决用户在使用Flink全托管产品全生命周期中可能遇到的各种难题。Flink智能诊断通过精准的错误诊断和优化建议,能够提升用户使用Flink的体验,降低了对人工服务的依赖。
通过对大量的Flink用户案例分析,我们将常见的Flink的问题分成错误日志分析、异常分析(影响作业当前运行) 、风险分析(不影响当前运行) 三个大类,并为其制定了明确的分析项目。
分析内容为当前作业抛出的日志栈,分析包含两个阶段:
主要分析内容为影响作业当前运行的问题,分析包含三个阶段:
主要分析内容为不影响作业运行的问题,分析包含两个阶段:
Flink智能诊断的技术架构分为数据层、服务层和业务层:
向服务层提供诊断所需的实时数仓能力,它将基础集群(Kubernetes)、产品引擎(VVP&Flink)的基础数据,经过大数据&AI计算引擎进行ETL、聚类、分析,最终将数据存储到数智平台的实时数仓中。这些数据包含用户Flink作业全生命周期的完整可观测数据,为分析用户全托管Flink产品提供底层数据支持。
服务层提供了两种能力,分别为错误日志分析服务,用于分析用户开发、运维过程产生的实时日志信息;以及作业诊断服务,提供更多纬度的数据分析能力,包含数据层提供的Flink全生命周期数据。两种能力通过接口层提供错误日志诊断、作业健康分、作业深度诊断服务,为业务层提供多样的作业探查能力提供底层支持。
通过调用接口层封装了不同形式的Flink诊断数据,实现了多入口的数据查询能力,包括VVP(阿里云实时计算Flink用户作业控制台)、钉钉答疑机器人和ABM诊断等。不同使用方通过以上入口获取到Flink作业的异常信息以及解决方案,最终帮助终端解决作业异常,助力Flink实时计算产品稳定流畅运行。Flink智能诊断中日志聚类&推荐部分算法侧整体链路如图所示,整体分为两个阶段:
主要提供两大核心能力:
日志实时诊断面临的最大问题是日志数量庞大且信息碎片化严重,无法有效提取关键信息。为了解决这个问题,Advisor建立了面向Flink错误日志的日志知识库,通过算法提取日志中的信息,并结合专家经验进行聚合,沉淀关键信息。日志聚类算法主要流程如下:
有关日志诊断相关的原理可以参考基于 Flink ML 搭建的智能运维算法服务及应用,如需更进一步体验日志聚类,可以参考SREWorks开源的日志聚类算法SREWorks v1.5 版本发布 | 基于实时作业平台的日志聚类开源。
为了能够降低专家经验集成和产品化的门槛,提升产研共建的效率,Advisor构建了日志自动化分析能力。
日志自动化分析能力带来的核心优势如下:
在Flink全托管开发控制台作业开发页面,您可以使用开发态错误日志分析:
实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell
在Flink全托管开发控制台作业运维页面,您可以查看作业的健康分
实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell
在Flink全托管开发控制台作业运维页面,您可以使用开发态错误日志分析
实时计算控制台:
https://realtime-compute.console.aliyun.com/console/cell
在Flink全托管开发控制台作业运维页面,您可以通过诊断功能,查看作业详细的风险原因及平台所给的建议。
Flink智能诊断的核心能力主要体现在:1、 产品体验:产品控制台开发引入了秒级实时报错诊断功能,覆盖了作业从开发态到运维态的全流程,方便用户自助解决问题,降低工单量。2、技术创新:采用了日志聚类和推荐算法来替代传统的正则表达式,不仅解决了海量日志“去重”难题,同时也大幅降低了专家业务经验的集成门槛。3、根因建议:覆盖异常场景,提供100%准确匹配异常原因诊断以及解决方案,敏捷发布热更新即刻生效。4、产研共建:智能诊断是SRE、研发、服务团队、产品多团队联合共建的结果,属于全链路专家经验产品化的产物,已形成常态化运作及维护机制,保障持续迭代优化。Flink智能诊断上线至今,在用户PV、问题覆盖率等几个方面都取得了较好的阶段性结果: