当前位置: 首页 > news >正文

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

针对极端学生化偏差(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 进行排序,即为获取根本原因异常服务,且异常可能性顺序递减。

相关文章:

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

针对极端学生化偏差(Extreme Studentized &#…...

代码版本管理工具 git

1. 去B站看视频学习,只看前39集: 01-Git概述(Git历史)_哔哩哔哩_bilibili 2.学习Linux系统文本编辑器的使用 vi编辑器操作指令分享 (baidu.com) (13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客 windows下载安装Git官…...

【计算机视觉中的 GAN 】如何稳定GAN训练(3)

一、说明 在上一篇文章中,我们达到了理解未配对图像到图像翻译的地步。尽管如此,在实现自己的超酷深度GAN模型之前,您必须了解一些非常重要的概念。如本文所提的GAN模型新成员的引入:Wasserstein distance,boundary eq…...

一文讲清楚地图地理坐标系

前言 我最近在做一个和地图有关的项目,这里本人地图采用的是mapbox,其中涉及一个功能需要根据用户输入的地点直接定位到地图上的对应的位置,本人开始想的是直接调用百度的接口根据地名直接获取坐标,发现在地图上的位置有偏移不够…...

助力青少年科技创新人才培养,猿辅导投资1亿元设立新基金

近日,在日本千叶县举办的2023年第64届国际数学奥林匹克(IMO)竞赛公布比赛结果,中国队连续5年获得团体第一。奖牌榜显示,代表中国参赛的6名队员全部获得金牌。其中,猿辅导学员王淳稷、孙启傲分别以42分、39分…...

代码随想录算法训练营之JAVA|第十八天| 235. 二叉搜索树的最近公共祖先

今天是第 天刷leetcode,立个flag,打卡60天,如果做不到,完成一件评论区点赞最高的挑战。 算法挑战链接 235. 二叉搜索树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/descriptio…...

IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)

1.守护进程&#xff08;幽灵进程&#xff09; #include<stdio.h> #include<head.h> int main(int argc, const char *argv[]) {pid_t cpid fork();if(0cpid){ //创建新的会话pid_t sidsetsid();printf("sid%d\n",sid);//修改运行目录为不可卸载的文件…...

物联网远程智能控制设备——开关量/正反转百分比控制

如今生产生活的便利性极大程度上得益于控制技术的发展&#xff0c;它改变了传统的工作模式&#xff0c;并将人们从【纯劳力】中解放出来。如今&#xff0c;随着科学技术的进步&#xff0c;控制器的种类及应用领域也越来越多。 物联网远程智能控制设备就是一种新型的、能够用于…...

echarts图表基本使用

折线图 import * as echarts from echarts;const chartDom document.getElementById(main); const myChart echarts.init(chartDom); const option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [820, 932, …...

排序进行曲-v1.0

排序 排序是将一组数据按照一定的规则进行排列的过程。在计算机科学中&#xff0c;排序是一 种常见的算法问题&#xff0c;通常用于对数据进行整理、查找、统计等操作。概念解读 基本概念 排序算法&#xff1a;排序算法是实现数据排序的具体方法。常见的排序算法包括冒泡排序…...

算法入门篇——用位运算解决一些问题

目录 1.判断一个数是2的次方数 2.统计一个数&#xff0c;它的二进制数中&#xff0c;1的个数 3.在2*&#xff08;n-1&#xff09;个数中&#xff0c;找到只出现一次的那个数 1.判断一个数是2的次方数 这个问题有好几种做法&#xff0c;但是最优雅的解法是用’位运算‘来做。…...

腾讯云-宝塔添加MySQL数据库

1. 数据库菜单 2. 添加数据库 3. 数据库添加成功 4. 上传数据库文件 5. 导入数据库文件 6. 开启数据库权限 7. 添加安全组 (宝塔/腾讯云) 8. Navicat 连接成功...

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

Mysql删除重复数据通用SQL

在日常开发过程中&#xff0c;可能会出现一些 bug&#xff0c;导致 Mysql 数据库数据重复&#xff0c;需要删除重复数据&#xff0c;这里记录下删除重复数据的通用 SQL &#xff0c;方便以后需要时查阅 1、写法一 DELETE t1 FROMtbl_name t1 INNER JOIN tbl_name t2 WHEREt1.…...

“快速入门Spring Boot:从零开始构建Web应用程序“

标题&#xff1a;快速入门Spring Boot&#xff1a;从零开始构建Web应用程序 摘要&#xff1a;本文将介绍如何使用Spring Boot从零开始构建一个简单的Web应用程序。我们将学习如何配置和启动Spring Boot应用程序&#xff0c;创建控制器和路由&#xff0c;以及如何使用模板引擎来…...

微信小程序tab加列表demo

一、效果 代码复制即可使用&#xff0c;记得把图标替换成个人工程项目图片。 微信小程序开发经常会遇到各种各样的页面组合&#xff0c;本demo为list列表与tab组合&#xff0c;代码如下&#xff1a; 二、json代码 {"usingComponents": {},"navigationStyle&q…...

深入挖掘地核和地幔之间的相互作用

一本新书介绍了我们在理解地核-地幔相互作用和共同进化方面的重大进展&#xff0c;并展示了提高我们对地球深层过程的洞察力的技术发展。 与地核-地幔共同演化相关的地球深层结构和动力学的图示。图片来源&#xff1a;白石千寻 Editors Vox是 AGU 出版部的博客。 地球深层内部很…...

网络:SecureCRT介绍

1. 使用Tab键补全时出现^I&#xff0c;如下操作...

我的512天创作纪念日

眼馋csdn发的虚拟徽章&#xff0c;所以写此文。个人总结&#xff0c;无技术分享。 机缘 写代码的机缘&#xff0c;在于听说这个挣钱多&#xff0c;坐办公室&#xff0c;凤吹不着&#xff0c;雨淋不着。 而写blog的机缘&#xff0c;则在于是自己的技术的总结&#xff0c;经常是…...

mysql进阶-用户密码的设置和管理

一、修改密码 1.1 修改自己的密码 方式一&#xff1a; 推荐使用 alter user user() identified by 新密码;方式二&#xff1a; set password 新密码;演示 [rootVM-4-6-centos /]# mysql -uzhang3 -pZhangSan123456 mysql: [Warning] Using a password on the command line…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...