云效故障定位论文被ICSE2021 SEIP track收录

近期,由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队,合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。本文针对大规模微服务系统的三种可用性问题,提出了一种高效的根因定位方法MicroHECL。MicroHECL基于动态构建的服务间的依赖图,分析了所有可能的异常传播链路,并基于相关性
摘要由CSDN通过智能技术生成

近期,由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队,合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。本文针对大规模微服务系统的三种可用性问题,提出了一种高效的根因定位方法MicroHECL。

MicroHECL基于动态构建的服务间的依赖图,分析了所有可能的异常传播链路,并基于相关性分析对候选根因进行了排序。本文将机器学习和统计方法相结合,并通过个性化的模型来检测不同类型的服务异常(如性能异常、可靠性异常、流量异常)。为了提高异常检测的效率,在异常传播链分析的过程中,MicroHECL采用了剪枝策略来消除不相关的服务调用。最后,通过实验研究,证明了MicroHECL在可用性问题异常检测的准确性和效率方面都显著优于两种先进的基线方法。MicroHECL已经在阿里巴巴内部落地实践,截止2020年7月,实际top-3的命中率达到了68%,根因定位的时间从原来的30分钟缩短到了5分钟。

研究背景

微服务架构已经成为构建云原生应用的最新趋势,越来越多的公司选择从单体系统迁移到微服务架构。工业微服务系统通常包含成百上千的应用,这些系统是高度动态和复杂的,一个服务可以有几个到几千个实例运行在不同的容器和服务器上,而可用性问题一直是大规模微服务系统面临的一个关键挑战。在这些系统中,服务质量(如性能、可靠性)的任何异常都有可能沿着服务调用链传播,并最终导致业务级别的可用性问题(如订单成功率下跌),这也是企业普遍碰到的问题。当监控系统监控到可用性问题时,它的根因服务和异常类型需要在短时间(如3分钟)内定位,以便开发人员快速解决问题。

阿里巴巴的电子商务系统每月活跃用户超过8.46亿人,它采用微服务架构,并且包含超过3万多个服务,这些服务都配备了一个称为EagleEye的大型监控基础设施。作为业务的载体,系统需要保证高可用。因此这些系统都部署了一个业务监控平台来及时的发出可用性问题报警。这些可用性问题通常表示业务运行中的问题,例如下单成功量下跌、交易成功率下跌等。这些可用性问题可能是由不同类型的异常引起的,异常可能从一个服务传播到另一个服务,最终导致可用性问题。在本文中,我们重点关注以下三种导致阿里巴巴大部分可用性问题的异常类型:

  1. 性能异常。性能异常表现为响应时间(RT)的异常增加。它通常是由有问题的系统实现或不正确的环境配置(例如容器或虚拟机的CPU/内存配置)引起的。
  2. 可靠性异常。可靠性异常表现为错误数量(EC)的异常增加,例如服务调用失败的次数。它通常由代码缺陷或环境故障(例如服务器或网络中断)引起的异常。
  3. 流量异常。流量异常表现为每秒异常增加或减少的查询数量(QPS)。流量的异常增加可能会导致服务中断,而异常流量的减少可能表明许多请求无法到达服务。它通常是由不正确的流量配置(例如Nginx的限流)、DoS攻击或意外的压测等引起。

相关研究

现有的方法不能有效的支持大规模微服务系统可用性问题根因定位,业界开发人员通常还需要依赖可视化工具来分析日志和链路,以识别可能的异常和异常传播链路,从而找到根本原因。研究人员已经提出了使用链路分析或服务依赖图的方法来自动定位微服务或更广泛的基于服务的系统的异常根因。基于链路分析的方法需要昂贵的链路数据收集和处理,因此不能有效的用于大规模系统。基于服务依赖图的方法是基于服务调用或因果关系来构造服务依赖图。这些方法通过遍历服务依赖图并用服务的指标数据(如响应时间)检测可能的异常来定位根因,然而这些方法由于对服务异常检测的不准确以及对服务依赖图的低效遍历而使用受限,尤其是在有很多服务和依赖关系的大规模微服务系统中。

方法概述

MicroHECL是一种解决可用性问题的高效的根因定位方法。在我们的场景中,可用性问题通常是从业务视角观测到的。例如,订单成功量下跌,它可能是由不同类型的异常引起的。目前MicroHECL支持三种类型的异常(即性能异常、可靠性异常、流量异常)。在定位特定类型的异常时,MicroHECL考虑相应的服务调用指标以及异常的传播方向。例如,在定位性能异常时,MicroHECL会主要考虑服务间调用的响应时间和异常传播方向(即从下游向上游传播)。MicroHECL的方法概述如图1所示,主要包括以下三个部分。

图1. MicroHECL概述

服务依赖图构建

当运行时的监控系统检测到可用性问题时,MicroHECL将启动根因分析过程。它基于运行时监控系统采集到的服务调用关系和指标,动态的构建一定时间窗口(例如最近30分钟)内的目标微服务系统的服务调用图。服务调用图是由一系列的服务节点S={S1, S2,...,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值