← 最新论文
💻 computer science

Microservice Root Cause Localization Based on Bi-Variate Graph Variational Autoencoder with Counterfactual-Inspired Recovery Scoring

本文提出了 BVC-RCA,一种微服务根因定位模型,该模型通过集成参数增强型异构追踪-日志图、双变量图变分自编码器以及一种受反事实启发的恢复评分机制,通过统一多源可观测性数据并测量节点级恢复贡献,来有效地将真实根因与级联受害者区分开来。

原作者: Jian Feng, Jiang Zheng, Haizheng Duan, Jiawei Liu

发布于 2026-09-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Jian Feng, Jiang Zheng, Haizheng Duan, Jiawei Liu

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代数字世界中,运行我们银行、仓库和出行应用的软件很少被构建成一个单一、坚实的整体。相反,它更像是一座由微小、独立的各种服务组成的庞大城市,每个服务处理特定的任务,如检查密码、处理支付或检索地图。这些服务不断相互通信,在复杂的网络中传递请求。这种设计使系统既灵活又强大,但也创造了一个脆弱的环境:其中一个角落的小故障可能会向外扩散,引发连锁反应,导致整个城市陷入停滞。当这种情况发生时,工程师们面临着巨大的挑战:他们必须在整个结构都在摇晃时,找到那块导致坍塌的单块碎砖。困难之处在于这些系统产生的海量数据——每一次调用、每一条错误消息和每一项性能指标的记录——这些数据往往是脱节的,难以拼凑在一起。此外,故障的症状往往具有误导性;第一个崩溃的服务并不一定是导致问题的根源,而往往是连锁反应中的受害者。

西安科技大学的一个研究小组开发了一种新方法来解决这个谜题,旨在更准确地定位这些数字故障的真正源头。他们将这种方法称为 BVC-RCA,它不将复杂的微服务网络视为一系列独立的日志,而是将其视为一张统一的地图,其中每一部分信息都是相互连接的。他们意识到,现有的工具之所以经常失败,是因为它们孤立地查看不同类型的数据,或者假设最响亮的警报就是最重要的。为了解决这个问题,他们构建了一个系统,将三种截然不同的信息编织在一起:请求在系统中经过的路径、它遇到的错误消息文本,以及速度和内存使用量等性能数值。通过将这些信息融合为一个连贯的图景,该系统能够看到以前隐藏的关系,例如,日志中的特定数据如何将两个不同的服务联系在一起,即使它们从未直接进行过调用。

其创新的核心是一个双引擎学习过程,它将系统的“行为”与其“状态”分离开来。想象一下,如果你试图通过听发动机的声音和观察时速表来了解汽车发动机,如果你将这两类观察过于紧密地混合在一起,你可能会把由松动的皮带引起的噪音与由爆胎引起的高速混淆。研究人员设计的模型能够分别监听事件序列和连接结构,以及性能数值,从而在两种信息互不干扰的情况下学习健康系统的模式。这种分离有助于模型理解:一个服务表现异常,是因为连接出了问题,还是因为它自身的资源不足,而这两者是需要不同解决方案的不同问题。

一旦模型学习了系统的正常模式,它就面临着识别故障根源的艰巨任务。传统方法通常将表现最糟糕的服务列为罪魁祸首,但在连锁故障中,表现最糟糕的服务通常只是受到初始错误冲击最严重的那一个。为了避免这个陷阱,研究人员引入了一种受“如果……会怎样”理念启发的巧妙测试机制。该系统不再仅仅观察一个服务的损坏程度,而是询问:“如果我们神奇地修复了这个特定的服务并让它恢复正常,系统的其余部分会平静下来吗?”如果修复某个服务能停止全局性的混乱,那么该服务很可能就是真正的根源。如果修复它后系统仍然处于动荡之中,那么该服务仅仅是初始问题的受害者。这种方法将关注点从“谁叫得最响”转向了“谁才是真正拿着火柴的人”。

研究人员在包含来自实际微服务系统(包括一个电子商务平台和一个大型商业银行)的数千条记录的两个真实世界数据集中测试了他们的方法。他们将结果与目前工程师使用的七种领先方法进行了比较。这种新方法证明了其显著的有效性,在其中一个数据集中,它正确地将故障的真正源头识别为首选候选者的比例约为 72%,在另一个数据集中为 71%,超越了以往所有的技术。研究还表明,他们系统的每一个部分都对这一成功做出了贡献:如果移除通过共享数据参数链接服务的能力,或者移除“如果……会怎样”的测试步骤,准确率都会明显下降。虽然该模型比一些简单的工具需要更多的计算能力,但它仍然足够快,足以用于实时操作,在工程师可以依赖的精度与速度之间取得了平衡。

这项工作并不声称解决了软件维护中的所有问题,研究人员也承认,他们的方法仍需在更大规模、噪声更多的环境中进行测试。然而,它为我们理解复杂的数字故障提供了一个清晰且可衡量的改进。通过将系统视为一个相互连接的整体,并使用逻辑测试来区分原因与结果,研究人员为应对现代技术的混乱提供了一种新途径。他们的发现表明,修复破碎系统的关键不仅在于观察警报,还在于理解它们之间隐藏的联系,并在实际应用修复之前模拟修复的效果。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →