当前位置: 首页 > 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…...

5分钟掌握ViGEmBus:Windows虚拟手柄驱动的完整指南

5分钟掌握ViGEmBus&#xff1a;Windows虚拟手柄驱动的完整指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款专业的Windows内核级虚拟游戏手…...

保姆级避坑指南:在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航(附5个常见报错解决方案)

保姆级避坑指南&#xff1a;在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航&#xff08;附5个常见报错解决方案&#xff09; 当你第一次尝试在Ubuntu 22.04上使用ROS2 Humble和TurtleBot3进行SLAM建图与导航时&#xff0c;可能会遇到各种令人沮丧的报错。这些报错往…...

Qwen3-14B中文大模型部署教程:token处理优化与生成质量调优

Qwen3-14B中文大模型部署教程&#xff1a;token处理优化与生成质量调优 1. 镜像概述与环境准备 Qwen3-14B是由通义千问团队开发的中文大语言模型&#xff0c;在各类自然语言处理任务中表现出色。本教程将详细介绍如何基于优化定制的私有部署镜像&#xff0c;快速搭建Qwen3-14…...

如何高效使用猫抓cat-catch:5个关键技巧完全指南

如何高效使用猫抓cat-catch&#xff1a;5个关键技巧完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到这样的情况&#xff1a…...

三步掌握BilibiliDown:打造你的B站视频离线收藏库

三步掌握BilibiliDown&#xff1a;打造你的B站视频离线收藏库 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bi…...

为什么选择Drawflow:5大优势让你爱上这个流程图库

为什么选择Drawflow&#xff1a;5大优势让你爱上这个流程图库 【免费下载链接】Drawflow Simple flow library &#x1f5a5;️&#x1f5b1;️ 项目地址: https://gitcode.com/gh_mirrors/dr/Drawflow Drawflow是一个简单而强大的JavaScript流程图库&#xff0c;专为创…...

换掉 Notepad++,事实证明它更牛逼!

提到文本编辑工具&#xff0c;大家肯定第一时间想到的是 Notepad 。Notepad 是一种流行的源代码编辑器&#xff0c;也是 Windows 用户的可靠记事本替代品。它是一个功能强大的实用程序&#xff0c;可在不占用大量存储空间的情况下提供最佳性能。不幸的是&#xff0c;它不适用于…...

免费窗口调整工具:3分钟学会强制修改任意窗口大小

免费窗口调整工具&#xff1a;3分钟学会强制修改任意窗口大小 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽、尺寸固定的应用程序窗口而烦恼吗&#xff1f;Wi…...

ESP32驱动MT6826S磁编码器:从接线防烧到实时速度计算(附完整Arduino库)

ESP32与MT6826S磁编码器实战指南&#xff1a;安全接线与高效数据采集 1. 硬件连接&#xff1a;避开那些可能毁掉你项目的陷阱 MT6826S磁编码器作为一款高精度角度测量器件&#xff0c;在机器人关节控制、无人机云台稳定等场景中表现优异。但许多开发者第一次接触这款编码器时&a…...

避坑指南:新到手的NUC 13装Ubuntu,WiFi驱动对了但图标不显示?可能是AX211网卡在Linux下的‘通病’

NUC 13安装Ubuntu后WiFi图标消失的深度排查与解决方案 刚拿到手的Intel NUC 13装上Ubuntu系统&#xff0c;WiFi驱动看似正常却不见图标&#xff1f;这可能是AX211网卡在Linux下的"通病"。作为一名长期与硬件兼容性问题打交道的技术顾问&#xff0c;我遇到过太多类似…...