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,相…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
