Root Cause Analysis in Microservice Using Neural Granger Causal Discovery
出处:AAAI 24
摘要
近年来,微服务因其可扩展性、可维护性和灵活性而在 IT 运营中得到广泛采用。然而,由于微服务中的复杂关系,当面临系统故障时,站点可靠性工程师 (SRE) 很难查明根本原因。以前的研究采用结构化学习方法(例如 PC 算法)来建立因果关系并从因果图中得出根本原因。然而,他们忽略了时间序列数据的时间顺序,未能利用时间关系中固有的丰富信息。例如,在 CPU 利用率突然激增的情况下,可能会导致其他微服务的延迟增加。但是,在这种情况下,CPU 利用率异常发生在延迟增加之前,而不是同时发生。因此,PC 算法无法捕获这些特征。为了应对这些挑战,我们提出了 RUN,这是一种使用神经 Granger 因果发现和对比学习进行根本原因分析的新方法。RUN 通过集成时间序列中的上下文信息来增强主干编码器,并利用时间序列预测模型进行神经 Granger 因果发现。此外,RUN 将 Pagerank 与个性化向量相结合,以有效地推荐前 k 个根本原因。在基于合成和真实世界微服务的数据集上进行的广泛实验表明,RUN 的性能明显优于最先进的根本原因分析方法。此外,我们还为 sock-shop 案例提供了一个分析场景,以展示 RUN 在基于微服务的应用程序中的实用性和有效性。
引言
背景:近年来,随着公司的持续增长,系统运营规模不断扩大,变得越来越复杂。因此,这些组织选择从所谓的单体架构迁移到微服务架构(Liu et al. 2021)。微服务架构具有更好的可扩展性、更轻松的维护和更大的灵活性等优势。每项服务都可以根据需求独立扩展,从而实现高效的资源利用。开发人员可以专注于单个服务,从而更轻松地调试、测试和部署更改。尽管微服务有很多好处,但当一项服务出现异常时,服务之间的相互依赖会产生多米诺骨牌效应,导致后续问题并最终导致系统故障(Zhang 等人,2022 年)。在这种情况下,必须进行深入分析,以确定异常的罪魁祸首并有效缓解问题。
问题
但是,在微服务监控系统中,仅记录系统的运行值,而不记录它们之间的关系。因此,研究人员最近在云应用程序中采用了基于因果结构发现的技术进行根本原因分析 (RCA) (Wang et al. 2023),旨在确定异常的根本原因。图 1 说明了使用基于因果结构发现的方法的 RCA 流程。当异常关键绩效指标 (KPI) 触发异常检测警报时,工程师最初会将该特定 KPI 指定为触发点。随后,他们旨在确定此触发点的潜在根本原因。为了实现这一目标,他们构建了一个因果图,在不同 KPI 之间建立关系,使他们能够使用因果图提供的见解精确定位异常的罪魁祸首。
另一方面,格兰杰因果关系 (G