KDD 2024|基于隐空间因果推断的微服务系统根因定位
简介:本文介绍了由清华大学、南开大学、eBay、微软、中国科学院计算机网络信息中心等单位共同合作的论文《基于隐空间因果推断的受限可观测性场景的微服务系统根因定位》。该论文已被KDD 2024会议录用。
论文标题:Microservice Root Cause Analysis With Limited Observability Through Intervention Recognition in the Latent Space
作者:谢哲,张圣林,耿一彤,张尧,马明华,聂晓辉,姚振翮,徐龙龙,孙永谦,李文滔,裴丹
摘 要
随着微服务系统的广泛应用,许多根因定位(Root Cause Analysis, RCA)算法被提出。然而,现有算法大多集中在单级别(如指标级或服务级)的候选根因集(Root Cause Candidates, RCCs)排序上,并依赖完整的监控指标。然而,在实际的微服务系统中,候选根因的可观测性往往是有限的,在很多情况下,这可能导致不准确的根因分析。
为了解决这一问题,论文首次提出将候选根因建模为隐变量,通过相关的监控指标来推断候选根因的状态,而不是直接根据某个可观测指标判断候选根因的状态。基于此思想,论文提出了LatentScope,一种在受限可观测性下处理异构候选根因的无监督RCA框架。LatentScope通过双空间图(Dual-Space Graph)模型(包括可观测变量和不可观测变量)来实现快速的隐变量推断和RCA。基于eBay的实际故障数据与Testbed数据的评估结果表明,与基线算法相比,我们模型的根因定位效果取得了显著的提升。
背景与挑战
随着在线应用需求的日益复杂和多样化,微服务架构在在线服务系统中被广泛使用。然而,由于频繁的变化和扩展,系统故障是不可避免的。因此,近年来提出了越来越多的RCA算法来定位故障根因。
在应用RCA算法时,一个重要的挑战是微服务系统内部各个候选根因(例如,Pod、Service、Host)的有限可观测性。在微服务系统中,可观测性通常是通过监控指标、日志与调用链等方式实现的。现有RCA算法通常要求具有良好的可观测性,但实际情况中,由于微服务系统的架构通常较为复杂多变,大量候选根因的可观测性是受限的。
图1 在微服务系统中,Service 1发生了故障,并且由于故障传播,系统中不同部件的监控指标均出现了异常波动
上图展示了一个由Service 1引起的微服务系统故障及其对应的候选根因集RCCs。这些RCCs可以是异构的和多层次的。此外,由于Service 1与Pod 1-1和Pod 1-2均有包含关系,Service 1的故障也造成了对应Pod的异常波动。如果没有指标能够独立反映Service 1的状态情况,那么现有的RCA算法通常难以区分出具体的根因是来自于Pod 1-1、Pod 1-2或Service 1。
方法设计
图2 LatentScope的整体结构
图3 双空间图与其符号表示
LatentScope的整体结构如图2所示。为了实现对异构候选根因的准确建模,LatentScope建立了一个双空间图模型,分别表示隐空间层(Latent Space)和可观测层(Observable Space)。
其中,隐空间层的每一个节点代表一个候选根因,可观测层的每一个节点代表一个指标。隐空间层与可观测层的节点间存在多对多的连接关系,即每一个候选根因可能对应了多个监控指标,而每一个监控指标可能也同时与多个候选根因存在关系。
LatentScope的任务是,基于上述的双空间图,根据现有的监控指标,推断出其中隐空间层的根因节点。然而,正如前文所述,监控指标可能同时会受到故障根因与来自其他RCC的故障传播造成的影响而产生波动。因此,我们需要同时考虑这两种导致指标波动的因素,推断故障根因。为此,LatentScope提出了一种可应用于隐空间的因果推断(Latent-Space Intervention Recognition)算法,根据可观测的指标,求解隐空间的根因。
实验评估
表1 基线模型对比表格
论文分别基于了来自eBay真实故障案例的数据集(Dataset A)与来自Testbed故障注入的数据集(Dataset B)进行了评估,对比LatentScope与基线模型的根因定位准确率。其实验结果如表1所示。结果表明,LatentScope在所有的评估指标中,均能够超过现有的基线模型。
图4 基线模型MRR对比结果雷达图
此外,文章还分别对不同模型在异质根因上的定位结果进行了对比,其结果如图4所示。可以发现,现有的大多数基线模型往往只能对有限的几类根因中取得不错的定位效果,而文章提出的LatentScope算法对于不同类别的根因均取得较好的定位效果。这验证了LatentScope算法在应对异质RCC与有限观测性下良好的根因定位能力。
总 结
微服务系统的根因分析(RCA)对于确保系统的稳定性和可靠性至关重要,论文提出了一种新的无监督RCA框架LatentScope,能够在受限的可观测性条件下推断异构的候选根因。LatentScope通过构建双空间图模型,将可观测变量和隐空间变量分离开来,从而缓解了候选根因的异构性与受限可观测性带来的根因定位不准确的问题。创新地提出了隐空间下的因果推断技术,实现了对于候选根因隐变量的精确推断。通过真实故障案例的实验,验证了LatentScope在应对异质候选根因与有限观测性下良好的根因定位能力。
欢迎报名2024 CCF国际AIOps挑战赛!
2024 (第七届)CCF国际AIOps挑战赛由中国计算机学会(CCF)主办,中国计算机学会互联网专委会、清华大学、中国科学院计算机网络信息中心承办,中兴通讯、北京智谱华章科技有限公司、中南大学计算机学院、清华大学计算机科学与技术系、北京必示科技有限公司协办。同时,本届AIOps挑战赛也是OpenAIOps社区成立之后第一届重要年度赛事。
本次挑战赛以“基于检索增强的运维知识问答”为赛题,旨在探索如何结合领域私有技术文档进行高效私域知识问答。首次采用大模型检索增强(RAG)技术,基于中兴5G领域运维技术文档,揭示在通用大语言模型基座下,垂直领域知识问答面临的领域知识缺失、公私域知识冲突、多模态图表并存等一系列挑战。
目前挑战赛报名进行中,欢迎报名参赛!(报名网址:https://aiops-challenge.com)更多赛事相关信息将在社区“智能运维前沿”公众号发布,同时OpenAIOps社区群将提供赛事通知、技术答疑,有意者可扫码添加官方微信号(OpenAIOps社区小助手)入群。
相关文章:

KDD 2024|基于隐空间因果推断的微服务系统根因定位
简介:本文介绍了由清华大学、南开大学、eBay、微软、中国科学院计算机网络信息中心等单位共同合作的论文《基于隐空间因果推断的受限可观测性场景的微服务系统根因定位》。该论文已被KDD 2024会议录用。 论文标题:Microservice Root Cause Analysis Wit…...

白鹭群优化算法,原理详解,MATLAB代码免费获取
白鹭群优化算法(Egret Swarm Optimization Algorithm,ESOA)是一种受自然启发的群智能优化算法。该算法从白鹭和白鹭的捕食行为出发,由三个主要部分组成:坐等策略、主动策略和判别条件。将ESOA算法与粒子群算法(PSO)、遗传算法(GA)…...

【源码】2024完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城
后台可以自由拖曳修改前端UI页面 还支持虚拟商品自动发货等功能 前端UNIAPP 后端PHP 一键部署版本 获取方式: 微:uucodes...

Java-数组内存解析
文章目录 1.内存的主要结构:栈、堆2.一维数组的内存解析3.二维数组的内存解析 1.内存的主要结构:栈、堆 2.一维数组的内存解析 举例1:基本使用 举例2:两个变量指向一个数组 3.二维数组的内存解析 举例1: 举例2&am…...
Spring Cache --学习笔记
一、概述 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis(常…...

NTP服务的DDoS攻击:原理和防御
NTP协议作为一种关键的互联网基础设施组件,旨在确保全球网络设备间的时钟同步,对于维护数据一致性和安全性至关重要。然而,其设计上的某些特性也为恶意行为者提供了发动大规模分布式拒绝服务(DDoS)攻击的机会。以下是NTP服务DDoS攻击及其防御…...

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略
【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略 一、脏读(Dirty Read)二、不可重复读(Non-repeatable Read)三、幻读(Phantom Read)四、总结 💖The Begi…...
函数式接口:现代编程的利器
1. 引言 在软件开发的演进过程中,函数式编程(Functional Programming, FP)逐渐显露头角,成为解决复杂问题的有效工具之一。函数式接口作为函数式编程的核心概念之一,其重要性不言而喻。本文将深入探讨函数式接口的概念…...
2022职称继续教育--深入实施新时代人才强国战略 加快建设世界重要人才中心和创新高地
单选题(共7题,每题5分) 1、()实行职位职级制工资为主。 D、中长线科研重要岗位人员 2、建设世界重要人才中心和创新高地有()个阶段目标。 B、三 3、综合国力竞争说到底是(…...
kube-prometheus-stack 识别 k8s 集群内所有的 ServiceMonitor 和 PrometheusRule
默认情况下,kube-prometheus-stack 只自己创建的 ServiceMonitor,如果 k8s 集群内有多个非 kube-prometheus-stack 创建的 ServiceMonitor,不会被识别到。PrometheusRule 同理。 要识别所有的 ServiceMonitor 和 PrometheusRule ,…...
Android 图片加载glide库 一次通关
前言 Glide是一个由Bumptech开发的开源图片加载库,专门用于Android平台。它被广泛应用于Android应用中,以简化图片加载过程,并提高性能和效率。 Glide能够快速加载图片,同时减少页面加载时间和内存消耗。Glide具有强大的缓存机制…...

Spring OAuth2:开发者的安全盾牌!(上)
何利用Spring OAuth2构建坚不可摧的安全体系?如何使用 OAuth2 从跨域挑战到性能优化,每一个环节都为你的应用保驾护航? 文章目录 Spring OAuth2 详解1. 引言简述OAuth2协议的重要性Spring Framework对OAuth2的支持概述 2. 背景介绍2.1 OAuth2…...

设计模式使用(成本扣除)
前言 名词解释 基础名词 订单金额:用户下单时支付的金额,这个最好理解 产品分成:也就是跟其他人合做以后我方能分到的金额,举个例子,比如用户订单金额是 100 块,我方的分成是 80%,那么也就是…...
输入输出(2)——C++的标准输出流
目录 一、C的标准输出流 (一)cout、cerr和clog流对象 1、cout 流对象 2、cerr 流对象 3、clog流对象 (二)用函数put输出字符 (三)用函数 write 输出字符 一、C的标准输出流 标准输出流——流向标准输…...

C语言序列化和反序列化--TPL(一)
TPL TPL说明网站 C语言中高效的序列化 您可以使用tpl快速轻松地存储和重新加载C数据。Tpl是一个用于序列化C数据的库。数据以自然二进制形式存储。该API很小,并试图保持“不碍事”。Tpl可以序列化许多C数据类型,包括结构。Tpl与文件、内存缓冲区和文件…...
Session + JWT + Cookie
00:HTTP无状态(为了保持状态,前端好麻烦,又要自己存,又要想办法带出去,于是使用cookie) 01:Cookie 将用户信息,在每次请求时候 带给后端(但是自己存储大小有…...

PaddleOCR2.7+Qt5
章节一:Windows 下的 PIP 安装 官网安装教程地址 按照里面的教程去安装 如果使用cuda版本的还要安装tensorrt,不然后面运行demo程序的程序会报如下错。 下载TensorRT 8版本,tensorrt下载地址 章节二:编译源码 进入官网源码地址 下…...

在Android中解析XML文件并在RecyclerView中显示
1. 引言 最近工作有解析外部xml文件在App中显示的需求,特来写篇文章记录一下,方便下次使用。 2. 准备工作 首先,在项目的AndroidManifest.xml文件中添加读取外部存储的权限声明。 <uses-permission android:name"android.permiss…...

Notes for video: EDC-Con 2022/01 - EDC Conceptual Overview and Architecture
Eclipse Dataspace Connector 中文概念 Eclipse Dataspace Connector (EDC) 是一个开源项目,旨在提供一种标准化的方法来连接和共享数据空间中的数据。它是 Eclipse Foundation 下的一个项目,目标是促进数据共享和数据交换的互操作性。以下是 EDC 的一些…...
windows下nginx配置https证书
1、制作证书 1.1 安装工具openSSL。下载地址:http://slproweb.com/products/Win32OpenSSL.html Win64OpenSSL_Light-3_1_0.exe安装(假定安装位置在 d:\openSSL\) 1.2 配置openSSL环境。 新建系统变量OpenSSL值为d:\openSSL\bin,相…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...