小研究 - 一种复杂微服务系统异常行为分析与定位算法(一)

针对极端学生化偏差(Extreme Studentized Deviate,ESD)算法只能对单变量数据进行异常检测,难以对多变量数据进行异常行为度量,提出一种复杂微服务系统异常行为分析与定位(Multivariate Seasonal Hybrid ESD,M.S-H-ESD)算法。首先,对云平台的微服务运维日志数据进行提取,将多元日志数据进行加权归一得到一元数据。然后,对此一元数据采用多元周期混合ESD(Seasonal Hybrid ESD,S-H-ESD)算法对每个服务的异常度进行度量,进而获得异常度最高的服务,根据置信度和异常上限的设置,定位微服务系统异常的根因服务。实验结果表明,M.S-H-ESD算法对时间序列多维数据的异常行为检测具有较高的精确度、召回率和F1值,能够准确定位微服
务系统中的异常服务。

目录

1 M.S - H - ESD 算法

1.1 数据处理

1.2  异常行为分析与定位


1 M.S - H - ESD 算法

基于多元微服务日志的根因服务异常分析方法主要包含多元数据处理、模型训练和异常评分、模型评估以及故障修复等4个部分,具体过程示意图如图1所示。

 1 )多元数据处理。基于微服务系统的半结构化日志,通过正则表达式或自动抽取工具抽取相关的重要信息,将半结构化的日志信息转变为结构化的数据。对结构化数据清洗和标准化后,提取多元数据的特征值和特征根,求出每一维度数据的贡献度,对多元数据进行加权归一处理。

2 )模型训练和异常评分。对获取的服务数据按调用方式分组,对每组服务使用 M.S - H -
ESD算法计算每个服务为其他服务调用的服务评分。根据设置的阈值得到根服务的异常和定位结果,其中异常得分的上限越高,得到的异常根因服务越紧致,反之得到的异常根因服务越松弛。最后,按照得分结果进行排序,最有可能发生异常的根因服务就 在其 中,排 序 愈 靠 前,发 生 异 常 的 可 能 性越大。

3 )模型评价。常用的评价指标有准确率、查全率和 F1 值。准确性是最常见的评价指标,精确度越高,分类器越好,在对非均衡分布数据集的召回率和 F1 值的应用中,其是更客观地反映分类器在评价方面的指标。

4 )故障修复。根据根因服务的异常分析结果进行故障修复,故障修复包括人工修复或系统自愈。

1.1 数据处理

对多元微服务日志数据某一实体属性的研究涉及 p 个指标,分别用 x 1 , x 2 ,…, xp 表示,则 p 个指标组成的 p 维随机向量 x = ( x 1 , x 2 ,…, xp )T 。设随机向量 x 的均值为 μ ,协方差矩阵为 Ψ 。 x 的线性变换可以形成一个新的合成变量 y ,即新的合成变量 y 可以用原变量线性表示为:


 

算法步骤如下:

步骤1:读取输入,并对输入数据采用 minmax方法标准化,将初步处理后的数据记为 D 。

步骤2:利用主成分分析 [30 ] (Principal Compo -nents Analysis , PCA )模型得到 D 的协方差矩阵 Ψ的特征向量 X 、特征值 θ 和方差贡献率 υ 。

步骤3:计算成分得分系数矩阵 K 。 

步骤4:计算 D 中每个属性的权重。

步骤5:返回每一条记录的加权归一化数据。

步骤6:根据原始数据调用服务和被调服务对一元数据 F i 进行分组。

1.2  异常行为分析与定位

利用 ESD 算法获取一元数据的异常点,具体步骤如下:

步骤1:计算均值的数据序列应先删除上一轮最大残差样本数据,均值偏离最远残差的表达式为:

 步骤2: 计算临界值:

式中:n 为数据集的样本数; α 为置信度。

步骤3: 对比均值偏离最远残差与临界值大小,若 R i > λj ,则原假设 H 0 不成立,该样本点为异常点。

步骤4:重复以上步骤 k 次至算法结束。

ESD算法在处理原始数据的时候,并未考虑微服务日志数据本身具有时间序列的特征,为了更好地提取特征,在原有一元数据的基础上,对数据进行去周期和趋势。

基于 Loess的周期趋势分解( Seasonal- TrendDecompositionProcedure based on Loess , STL )将时间序列数据分解为趋势分量、周期分量和余项分量。将ESD 算法运用于 STL 分解后的余项分量中,即可得到时间序列上的异常点,但在余项分量中存在着部分假异常点。为了解决这种假阳性降低准确率的问题,采用中位数( median )替换趋势分量。设原时间序列数据为 T , STL分解后的周期分量 S T ,则残差余项分量的计算表达式为:

考虑到个别异常值会极大地拉伸均值和方差,导致式中的余项分量计算未能很好地捕获到部分异常点,召回率偏低。绝对中位差的计算表达式为:

 以上两式子代入后:

设某调用服务 i 发生的异常数为 a ,被调用服务发生的异常数为 b ,调用服务异常得分为:

由调用服务异常得分 L i 得到调用服务加权异常得分的表达式为:

 M.S - H - ESD算法具体步骤如下:

步骤1: 读取结构化日志数据。

步骤2: 利用对读取数据进行加权并归一化得到一元数据。

步骤3: 根据调用服务和被调服务对一元数据进行分组提取。

步骤4: 将每条数据利用计算均值偏离最远残差 R j 和临界值 λj 。若 R j > λ j ,则 H 0原假设不为真,采样点为异常点。调整置信度 α 和异常得分的上限 u ,会得到不同服务下异常得分的值。记录该所有采样点,即分组的调用服务和被调服务的异常得分矩阵 S 。

步骤5: 根据调用服务和被调用服务矩阵的异常得分 S ,加权得到每个服务的异常度得分 G i 。

步骤6: 对微服务的异常度得分 G 进行排序,即为获取根本原因异常服务,且异常可能性顺序递减。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3、Winform表单控件

在学习了布局控件之后,我们就该学习表单控件了。表单控件可以设置默认值,使用属性窗口或使用代码都是可以的。属性窗口最终也很转化成代码。 程序的本质=输入+处理+输出。在Winform程序角度,这里的输入输出就可以用我们的表单控件来实现。 表单控件大致可分为两类,文本控…

Python爬取IP归属地信息及各个地区天气信息

一、实现样式 二、核心点 1、语言:Python、HTML,CSS 2、python web框架 Flask 3、三方库:requests、xpath 4、爬取网站:https://ip138.com/ 5、文档结构 三、代码 ipquery.py import requests from lxml import etree # 请求…

前端html中让两个或者多个div在一行显示,用style给div加上css样式

文章目录 前言一、怎么让多个div在一行显示 前言 DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用&#x…

概念、框架简介--ruoyi学习(一)

开始进行ruoyi框架的学习,比起其他的前后端不分离的,这个起码看的清晰一些吧。 这一节主要是看了ruoyi的官方文档后,记录了以下不懂的概念,并且整理了ruoyi框架中的相关内容。 一些概念 前端 store store是状态管理库&#x…

数值线性代数: 共轭梯度法

本文总结线性方程组求解的相关算法,特别是共轭梯度法的原理及流程。 零、预修 0.1 LU分解 设,若对于,均有,则存在下三角矩阵和上三角矩阵,使得。 设,若对于,均有,则存在唯一的下三…

中科院放大招:FastSAM快速细分任何东西

FastSAM是一个用于图像分割的快速模型,它是对SAM(Segment Anything Model)模型的改进和优化。FastSAM模型的目标是提高计算效率,使得图像分割任务能够更快地完成。 FastSAM模型的优势主要体现在以下几个方面: 快速性…

【Linux进程篇】进程概念(1)

【Linux进程篇】进程概念(1) 目录 【Linux进程篇】进程概念(1)进程基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类 组织进程查看进程通过系统调用获取进程标示符通过系统调用创建进程——fork初识 作者&#xff…

【Docker】Docker应用部署之Docker容器安装Redis

目录 一、搜索Redis镜像 二、拉取Redis镜像 三、创建容器 四、测试使用 一、搜索Redis镜像 docker search redis 二、拉取Redis镜像 docker pull redis:版本号 # 拉取对应版本的redis镜像 eg: docker pull redis:5.0 三、创建容器 docker run -id --nameredis -p 6379:637…

Games101学习笔记 - 变换矩阵基础

二维空间下的变换 缩放矩阵 缩放变换: 假如一个点(X,Y)。x经过n倍缩放,y经过m倍缩放,得到的新点(X1,Y1);那么新点和远点有如下关系,X1 n*X, Y1 m*Y写成矩阵就是如下…

ChatGPT与高等教育变革:价值、影响及未来发展

最近一段时间,ChatGPT吸引了社会各界的目光,它可以撰写会议通知、新闻稿、新年贺信,还可以作诗、写文章,甚至可以撰写学术论文。比尔盖茨、马斯克等知名人物纷纷为此发声,谷歌、百度等知名企业纷纷宣布要提供类似产品。…

玩转Tomcat:从安装到部署

文章目录 一、什么是 Tomcat二、Tomcat 的安装与使用2.1 下载安装2.2 目录结构2.3 启动 Tomcat 三、部署程序到 Tomcat3.1 Windows环境3.2 Linux环境 一、什么是 Tomcat 一看到 Tomcat,我们一般会想到什么?没错,就是他,童年的回忆…

安全基础 --- html标签 + 编码

html标签 &#xff08;1&#xff09;detail标签 <details>标签用来折叠内容&#xff0c;浏览器会折叠显示该标签的内容。 <1> 含义&#xff1a; <details> 这是一段解释文本。 </details> 用户点击这段文本&#xff0c;折叠的文本就会展开&#x…

【云原生】Docker容器资源限制(CPU/内存/磁盘)

目录 ​编辑 1.限制容器对内存的使用 2.限制容器对CPU的使用 3.block IO权重 4.实现容器的底层技术 1.cgroup 1.查看容器的ID 2.在文件中查找 2.namespace 1.Mount 2.UTS 3.IPC 4.PID 5.Network 6.User 1.限制容器对内存的使用 ⼀个 docker host 上会运⾏若⼲容…

平面设计软件都有哪些?推荐这7款

优秀的平面广告设计可以给产品带来良好的效益&#xff0c;正确传播品牌的价值和色调&#xff0c;而功能强大、使用方便的平面广告设计软件是创造优秀平面广告设计的关键。本文推荐7款备受好评的平面广告设计软件&#xff0c;易于使用&#xff01; 1.即时设计 即时设计是国内一…

Bug记录: CUDA error_ device-side assert triggered

Bug记录&#xff1a; CUDA error: device-side assert triggered 在接触AIGC算法的过程中偶尔会遇到这样的bug&#xff1a;RuntimeError: CUDA error: device-side assert triggered return torch._C._cuda_synchronize() RuntimeError: CUDA error: device-side assert trig…

python在不同坐标系中绘制曲线

文章目录 平面直角坐标系空间直角坐标系极坐标地理坐标 平面直角坐标系 回顾我们的数据可视化的学习历程&#xff0c;其实始于笛卡尔坐标系的创建&#xff0c;并由此建立了数与形的对应关系。在笛卡尔坐标系中随便点上一点&#xff0c;这个点天生具备坐标&#xff0c;从而与数…

CloudDriver一款将各种网盘云盘挂在到电脑本地变成本地磁盘的工具 教程

平时我们的电脑可能由于大量的文件资料之类的导致存储空间可能不够&#xff0c;所以我们可以选择将网盘我们的本地磁盘用来存放东西。 CloudDrive 是一款可以将 115、阿里云盘、天翼云盘、沃家云盘、WebDAV 挂载到电脑中&#xff0c;成为本地硬盘的工具&#xff0c;支持 Window…

短视频平台视频怎么去掉水印?

短视频怎么去水印&#xff0c;困扰很多人&#xff0c;例如&#xff0c;有些logo水印&#xff0c;动态水印等等&#xff0c;分享操作经验&#xff1a; 抖音作为中国最受欢迎的社交娱乐应用程序之一&#xff0c;已成为许多人日常生活中不可或缺的一部分。在使用抖音过程中&#x…

数据结构--基础知识

数据结构是什么&#xff1f; 数据结构是计算机科学中研究数据组织、存储和管理的方法和原则。它涉及存储和操作数据的方式&#xff0c;以便能够高效地使用和访问数据。 相关内容 基本组成 数组&#xff08;Array&#xff09;&#xff1a;数组是一种线性数据结构&#xff0c;…

K8S暴露pod内多个端口

K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务&#xff0c;只暴露了8080端口 二、需求 由于有些服务在启动jar服务后&#xff0c;会启动多个端口&#xff0c;除了8080端口&#xff0c;还有别的端口需要暴露&#xff0c;我这里就还需要暴露9999端口。 注&a…