CN115269357B - 一种基于调用链的微服务异常检测方法 - Google Patents

一种基于调用链的微服务异常检测方法 Download PDF

Info

Publication number
CN115269357B
CN115269357B CN202211165473.8A CN202211165473A CN115269357B CN 115269357 B CN115269357 B CN 115269357B CN 202211165473 A CN202211165473 A CN 202211165473A CN 115269357 B CN115269357 B CN 115269357B
Authority
CN
China
Prior art keywords
data
encoder
graph
micro
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211165473.8A
Other languages
English (en)
Other versions
CN115269357A (zh
Inventor
刘发贵
陈健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202211165473.8A priority Critical patent/CN115269357B/zh
Publication of CN115269357A publication Critical patent/CN115269357A/zh
Application granted granted Critical
Publication of CN115269357B publication Critical patent/CN115269357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于调用链的微服务异常检测方法。所述方法包括以下步骤:对调用链中所有微服务的响应时间及对应微服务所在容器的性能指标进行预处理;对预处理后的数据进行分类处理;使用基于密度的聚类算法对每一类数据进行降噪处理,得到异常检测模型训练所需要的数据集;使用训练好的基于图神经网络的异常检测模型对实时保存的数据样本进行异常检测,得到每一个数据样本的异常概率;设置异常概率阈值,根据数据样本的异常概率判断该数据样本是否为异常数据样本得到异常检测的结果。本发明能够同时发现服务质量异常和资源使用异常,且具有不依赖于标签数据、扩展性强、性能优的优点。

Description

一种基于调用链的微服务异常检测方法
技术领域
本发明属于计算机应用技术领域,尤其涉及一种基于调用链的微服务异常检测方法。
背景技术
微服务架构除了拥有动态扩展和独立部署的特点之外,还支持使用不同种类的编程语言,这使得微服务架构成为越来越多的电子商务网站部署其应用的最佳解决方案。例如京东在50万个容器的集群上提供了超过8000个应用和约34000个微服务,每天支持超过2500亿次基于RPC的微服务调用。对于用户来说,希望应用的响应时间越短越好,如果微服务系统出现错误,会给企业带来不可预知的经济损失。研究指出(O. Ibidunmoye, F. Hern´andez-Rodriguez, and E. Elmroth, “Performance anomaly detection andbottleneck identification,” ACM Computing Surveys(CSUR), vol. 48, no. 1, pp.1–35, 2015.),当用户请求的响应时间增加100ms时,电商网站的营业额就会下降1%,因此研究如何确保微服务系统的高可用性是十分重要的。
随着云计算的快速发展,微服务系统变得越来越庞大,微服务之间的依赖关系也变得错综复杂,业务需求更新迭代快使得传统静态的异常检测方法无法适用,迫切需要一种灵敏且适用范围广的微服务异常检测方法,来快速发现系统中存在的故障或潜在异常,保障微服务系统的可靠性和性能。
针对微服务异常检测的工作,目前研究学者已经提出了众多方法,中国专利文献CN113467421A“获取微服务健康状态指标的方法和微服务异常诊断方法”提出利用微服务所处物理机的硬件状态数据以及微服务的健康状态进行异常检测,该方法不适用于微服务部署在当下流行的虚拟化容器上的云环境场景,云环境复杂且变化多样,难以从物理机层面对微服务进行异常预测。中国专利文献CN109933452B“一种面向异常传播的微服务智能监测方法”提出通过使用代理的方式对微服务的调用进行监控,使用Lasso回归对所检测的度量值进行预测,大于设定阈值的则判定为异常,但该方法没有考虑到微服务所处环境带来的可能影响,无法发现微服务系统中潜在的性能影响因素。因此,如何构造适合分布式部署环境下微服务异常检测的方法仍旧是云计算智能运维的一项挑战。
发明内容
本发明的目的在于克服上述现有技术的不足,提供一种基于调用链的微服务异常检测方法,用属性图的形式融合微服务本身以及微服务所处环境的特征,通过图神经网络等模型对微服务系统状态进行评估,从而实现异常检测,及时降低或避免异常问题带来的损失。
本发明的目的至少通过如下技术方案之一实现。
一种基于调用链的微服务异常检测方法,包括以下步骤:
S1、对调用链中所有微服务的响应时间及对应微服务所在容器的性能指标进行预处理;
S2、根据每条调用链中拥有的微服务种类对预处理后的数据进行分类处理;
S3、使用基于密度的聚类算法对每一类数据进行降噪处理,得到异常检测模型训练所需要的数据集;
S4、使用训练好的基于图神经网络的异常检测模型对实时保存的数据样本进行异常检测,得到每一个数据样本的异常概率;
S5、设置异常概率阈值,根据数据样本的异常概率判断该数据样本是否为异常数据样本,大于异常概率阈值的被认为是异常数据样本,反之则是正常数据样本,得到异常检测的结果。
进一步地,步骤S1中,所述调用链中所有微服务的响应时间指利用分布式链路追踪系统收集到的span数据中每个微服务对于用户请求的响应时间,若存在多个span数据的调用微服务与被调用微服务相同,则该微服务的响应时间为多个相同span数据的平均值;
所述微服务所在容器的性能指标包括微服务运行所在容器的CPU使用率、内存使用率、磁盘使用率和网络使用率。
进一步地,所述预处理包括缺失值处理、归一化处理和数据格式转换处理;
所述缺失值处理指对于容器的性能指标而言,间隔的缺失值即性能指标的某行或某列的连续缺失值不超过5个,采用最近的12个非缺失值进行线性插值补全修复;
所述数据归一化处理指对经过缺失值处理后的调用链中所有微服务的响应时间 及对应微服务所在容器的性能指标进行归一化,让其分布在
Figure DEST_PATH_IMAGE001
所述数据格式转换处理指根据分布式链路系统收集到的span数据中的父span与子span之间的调用关系,构建服务调用拓扑图,再根据数据的时间戳以及微服务与容器的对应关系构建成属性图,属性图包括一个邻接矩阵A和一个特征矩阵X,其中所述邻接矩阵表示一次用户请求的微服务请求路径,也就是服务调用拓扑图;特征矩阵表示一次用户请求中所有微服务的一系列特征,包括微服务自身的响应时间以及对应span时间戳时刻所处容器的性能指标。
进一步地,步骤S2中,预处理后的数据样本,依据每个数据样本所包括的微服务种类生成0-1编码,即一次用户请求中访问的微服务标记为1,未访问的微服务标记为0,利用K-Means++聚类算法对于所有数据样本的0-1编码进行聚类,得到多个聚类簇,基于同一种业务的所有用户请求路径相似的假设,每一个数据样本的类别代表整个微服务系统所提供的一种业务类型;对于每一个数据样本的类别自适应的去除没有访问的微服务节点及其对应特征,以降低计算复杂度,加快模型训练和检测速度。
进一步地,使用K-Means++聚类算法将预处理后的属性图数据进行聚类;K-Means 是经典的聚类算法之一,其核心思想是随机选取第一个聚类中心,在选取第
Figure DEST_PATH_IMAGE002
个聚类中心 时,距离前
Figure DEST_PATH_IMAGE003
个聚类中心越远的点被选中的概率就越高,其中
Figure DEST_PATH_IMAGE004
;K-Means++聚 类过程中样本和聚类中心点的距离、样本点
Figure DEST_PATH_IMAGE005
被选中为聚类中心的概率
Figure DEST_PATH_IMAGE006
的计算分别 如公式(1)和公式(2)所示:
Figure DEST_PATH_IMAGE007
(1)
Figure DEST_PATH_IMAGE008
(2)
其中
Figure DEST_PATH_IMAGE009
是数据样本的维度,
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE011
分别是样本点
Figure 696316DEST_PATH_IMAGE005
和聚类中心
Figure 285560DEST_PATH_IMAGE012
的第
Figure 534139DEST_PATH_IMAGE002
维数据 样本。
进一步地,步骤S3中,考虑到训练集中可能存在的噪声,对于每一个聚类簇中的数据样本,进一步的采用基于密度的聚类算法DBSCAN进行降噪处理,具体实施步骤如下:
将属性图中的特征矩阵X展开为一维向量(1,N*F),其中N表示微服务种类数,F表示微服务特征维度;基于同一种服务中所有正常请求的特征都相似的假设,采用基于密度的聚类算法能够提取出每一类服务的正常特征模,即将S2中分好类的训练数据集输入到基于密度的聚类算法中,只选择聚类结果中样本数量最多的一个簇作为异常检测模型训练所需要的数据集,降低异常样本对模型训练的影响。
进一步地,步骤S4中,基于图神经网络的异常检测模型包括图变分自编码器(VGAE)和基于LSTM自编码器(LSTM-AE)两个部分,图变分自编码器的目的是为了提取数据样本的拓扑特征,并检测是否存在拓扑结构异常,而LSTM自编码器的目的是为了学习数据样本在时间维度上的特征,并检测是否存在微服务相关特征异常;
通过设置两个超参数
Figure DEST_PATH_IMAGE013
Figure DEST_PATH_IMAGE014
将两部分的损失值进行线性加和得到异常检测模型 最终的损失值
Figure DEST_PATH_IMAGE015
,并以此作为异常得分,损失值越大的样本是异常样本的概率越高, 计算公式如下:
Figure DEST_PATH_IMAGE016
(3)
其中,
Figure 335873DEST_PATH_IMAGE013
Figure 619087DEST_PATH_IMAGE014
两个超参数根据图变分自编码器(VGAE)的损失值
Figure DEST_PATH_IMAGE017
和基于 LSTM自编码器(LSTM-AE)的损失值
Figure DEST_PATH_IMAGE018
之间的数量级差值来确定,初始设定为
Figure 868978DEST_PATH_IMAGE013
Figure 604853DEST_PATH_IMAGE014
=1:150。
进一步地,基于图神经网络的异常检测模型中的图变分自编码器(VGAE)部分包括编码器和解码器,编码器的目的是充分提取拓扑特征,并将拓扑特征映射到隐空间中,而解码器的目的是通过对提取的拓扑特征解码,重构输入数据样本的拓扑结构;
图变分自编码器(VGAE)的输入数据样本为
Figure DEST_PATH_IMAGE019
其中
Figure DEST_PATH_IMAGE020
代表一次用户请求经过数据预处理得到的属性图,按照用户请求的时间顺序排序,
Figure DEST_PATH_IMAGE021
Figure DEST_PATH_IMAGE022
表示输入序列
Figure DEST_PATH_IMAGE023
的长度,输入序列
Figure 679120DEST_PATH_IMAGE023
是基于请求时间排序;根据 属性图的组成,
Figure 613578DEST_PATH_IMAGE023
可以分为
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE025
,其中
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE027
分别代表对应
Figure DEST_PATH_IMAGE028
的邻接矩阵和 特征矩阵,
Figure DEST_PATH_IMAGE029
表示属性图的节点数,即微服务种类数,
Figure DEST_PATH_IMAGE030
表示属性图的特征维度;
图变分自编码器(VGAE)是为图结构数据设计的,整体结构基于变分自动编码器 (VAE),图变分自编码器(VGAE)使用两层的图卷积层(GCN)作为编码器部分,将预处理得到 属性图的邻接矩阵和属性矩阵编码到隐藏层
Figure DEST_PATH_IMAGE031
中;图变分自编码器(VGAE)的定义如下:
Figure DEST_PATH_IMAGE032
(4)
Figure DEST_PATH_IMAGE033
(5)
Figure DEST_PATH_IMAGE034
(6)
其中,
Figure DEST_PATH_IMAGE035
Figure DEST_PATH_IMAGE036
分别代表第一层GCN
Figure DEST_PATH_IMAGE037
和第二层GCN
Figure DEST_PATH_IMAGE038
的权重矩阵;X代表输 入的特征矩阵,使用
Figure DEST_PATH_IMAGE039
作为第一层GCN输出的激活函数,
Figure DEST_PATH_IMAGE040
Figure DEST_PATH_IMAGE041
是第二层GCN
Figure 295357DEST_PATH_IMAGE038
的输 出值,分别代表近似后验的平均值和标准偏差,
Figure DEST_PATH_IMAGE042
表示一个取样于正太分布
Figure DEST_PATH_IMAGE043
的随 机变量,
Figure DEST_PATH_IMAGE044
代表对称归一化的邻接矩阵,归一化公式如下:
Figure DEST_PATH_IMAGE045
(7)
其中,
Figure DEST_PATH_IMAGE046
代表输入序列
Figure DEST_PATH_IMAGE047
中输入数据样本的邻接矩阵,
Figure DEST_PATH_IMAGE048
代表邻接矩阵对应 的度矩阵;通过两层的GCN进一步提取节点的拓扑特征,得到更为准确的微服务节点表示, 考虑到不同邻居节点对于节点自身的影响不同,采用图注意力机制(Graph Attention)对 所有微服务的特征表示赋予不同的权重,计算公式如下:
Figure DEST_PATH_IMAGE049
(8)
Figure DEST_PATH_IMAGE050
(9)
其中,
Figure DEST_PATH_IMAGE051
表示第
Figure DEST_PATH_IMAGE052
个微服务的隐藏状态
Figure DEST_PATH_IMAGE053
和第
Figure DEST_PATH_IMAGE054
个微服务的状态隐藏状态
Figure DEST_PATH_IMAGE055
的相关系数,可以通过神经网络来学习
Figure DEST_PATH_IMAGE056
,其中
Figure DEST_PATH_IMAGE057
Figure DEST_PATH_IMAGE058
是需要学习的权重参数,K代表 节点所拥有的邻接节点数量,最后使用
Figure DEST_PATH_IMAGE059
归一化得到归一化权重
Figure DEST_PATH_IMAGE060
,再对编 码器的隐藏层的状态进行加权求和并通过非线性激活函数sigmoid函数得到每个微服务最 终的编码向量
Figure DEST_PATH_IMAGE061
Figure DEST_PATH_IMAGE062
(10)
解码器部分采用内积(innerproduct)的方式对编码得到的隐藏层
Figure DEST_PATH_IMAGE063
进行解码, 输出重建后的邻接矩阵
Figure DEST_PATH_IMAGE064
,具体如下:
Figure DEST_PATH_IMAGE065
(11)
图变分自编码器(VGAE)的损失函数与VAE相同,通过计算重建误差与正则化项之 和得到图变分自编码器(VGAE)的损失值
Figure DEST_PATH_IMAGE066
;重建误差即计算属性图的邻接矩阵
Figure DEST_PATH_IMAGE067
与 图变分自编码器(VGAE)重构得到的邻接矩阵
Figure DEST_PATH_IMAGE069
之间的交叉熵;正则化项即用于测量一般正 态分布与标准正态分布差异的KL距离(Kullback–Leibler divergence)。
进一步地,基于图神经网络的异常检测模型中的LSTM自编码器(LSTM-AE)部分包括编码器和解码器,其中编码器部分采用多层的堆叠LSTM神经网络来实现,目的是充分提取微服务特征数据的时序特征,具体如下:
LSTM自编码器(LSTM-AE)的编码器的LSTM单元的状态传递时需要同时考虑到前一个LSTM单元的隐层状态和上一层LSTM单元的隐层状态,即:
Figure DEST_PATH_IMAGE070
(12)
其中,
Figure DEST_PATH_IMAGE071
代表 LSTM自编码器(LSTM-AE)的输入特征矩阵,按照时间顺序排序,T代 表LSTM自编码器的时间步参数,
Figure DEST_PATH_IMAGE072
,为了充分考虑微服务的特征属性存在拓扑 结构上的相关依赖,这里使用VGAE编码器的第一层图注意力卷积层的输出代替原始属性图 的特征矩阵,
Figure DEST_PATH_IMAGE073
Figure DEST_PATH_IMAGE074
分别代表第
Figure DEST_PATH_IMAGE075
层,
Figure DEST_PATH_IMAGE076
-1时刻的记忆单元状态和隐藏层状态,
Figure DEST_PATH_IMAGE077
表示多层的堆叠LSTM神经网络的层数;
经过多层的堆叠LSTM神经网络的特征提取,最终得到每个时刻的隐藏层向量分别 为
Figure DEST_PATH_IMAGE078
,以最后一层的最后一个时刻的记忆单元状态和隐藏层状态
Figure DEST_PATH_IMAGE079
,
Figure DEST_PATH_IMAGE080
作为编码得到的特征
Figure DEST_PATH_IMAGE081
解码器部分采用单层LSTM神经网络来实现,基于单层LSTM对编码得到的特征
Figure 833042DEST_PATH_IMAGE081
进行解码,输出重建后的特征矩阵
Figure DEST_PATH_IMAGE082
解码器的LSTM的状态更新如下:
Figure DEST_PATH_IMAGE083
(13)
其中
Figure DEST_PATH_IMAGE084
表示前一时刻的隐藏层状态,
Figure DEST_PATH_IMAGE085
表示解码器对于t-1时刻的输出 结果,
Figure 475114DEST_PATH_IMAGE084
Figure DEST_PATH_IMAGE086
构成,
Figure DEST_PATH_IMAGE087
表示编码器输出的编码向量;解码器的第一个 时刻使用编码向量
Figure 670603DEST_PATH_IMAGE087
来初始化隐藏层的状态和记忆单元的状态,输入为0;通过计算重构 得到的属性图特征矩阵
Figure DEST_PATH_IMAGE088
和原始特征矩阵
Figure DEST_PATH_IMAGE089
之间的均方差(MSE)得到LSTM自编码器 (LSTM-AE)的损失值
Figure DEST_PATH_IMAGE090
进一步地,步骤S5中,根据训练好的基于图神经网络异常检测模型对收集并存储到的微服务数据样本进行异常检测,得到每个数据样本的异常概率,并且设定异常概率的阈值为模型历史训练损失的均值与三倍标准差之和,大于阈值则判定为异常数据样本,否则为正常数据样本。
与现有技术相比,本发明具有如下的优点与技术效果:
1. 提供了一种在复杂云环境中不依赖于标签数据,能够处理不平衡数据的基于分布式链路跟踪的微服务异常检测方法。而常规的异常检测方法往往是有监督或半监督的,且难以处理不平衡的数据。
2. 所提出的基于属性图表示的数据形式,融合了分布式链路追踪系统收集微服务本身调用相关信息,包括调用关系和响应时间等,以及收集微服务所处容器的系统运行指标,比如CPU、内存、网络等,能够较为全面的体现云环境下微服务的运行健康状态。
3. 所提出的基于图神经网络的异常检测模型,其采用的基于K-Means++和DBSCAN的预标注技术能够为异常检测提供更合理的输入,降低训练难度;其采用的VGAE和LSTM-AE部分能够从不同角度(空间和时间)对原始数据进行异常检测,融合二者的检测结果使得异常检测模型整体具有高检测精度、适用范围广、鲁棒性强的特点。
附图说明
图1为本发明方法的具体实施例中基于分布式链路跟踪的微服务异常检测方法示意图。
图2 为本发明方法具体实施例中基于收集到的调用链数据生成微服务调用拓扑示意图。
图3为本发明方法具体实施例中基于收集到的调用链数据和微服务所在容器性能指标数据转化成属性图示意图。
图4为本发明方法具体实施例中基于图神经网络异常检测模型示意图。
图5为本发明方法具体实施例中基于Kubernetes部署的微服务系统进行异常检测的流程示意图。
图6为本发明方法具体实施例在TrainTicket上的实验结果。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图,进行进一步的详细说明,但本发明的实施和保护不限于此。
实施例1:
一种基于调用链的微服务异常检测方法,如图1所示,包括以下步骤:
S1、对调用链中所有微服务的响应时间及对应微服务所在容器的性能指标进行预处理;
所述调用链中所有微服务的响应时间指利用分布式链路追踪系统收集到的span数据中每个微服务对于用户请求的响应时间,每一次用户请求会生成一条调用链,每条调用链由多个span组成,每个span代表微服务之间的一次调用,包含调用方微服务也就是父span,被调用方微服务也就是子span,以及被调用方微服务的响应时间和名称,若存在多个span数据的调用微服务与被调用微服务相同,则该微服务的响应时间为多个相同span数据的平均值;
所述微服务所在容器的性能指标包括微服务运行所在容器的CPU使用率、内存使用率、磁盘使用率和网络使用率。
所述预处理包括缺失值处理、归一化处理和数据格式转换处理;
所述缺失值处理指对于容器的性能指标而言,间隔的缺失值即性能指标的某行或某列的连续缺失值不超过5个,采用最近的12个非缺失值进行线性插值补全修复;
所述数据归一化处理指对经过缺失值处理后的调用链中所有微服务的响应时间 及对应微服务所在容器的性能指标进行归一化,让其分布在
Figure DEST_PATH_IMAGE091
所述数据格式转换处理指根据分布式链路系统收集到的span数据中的父span与子span之间的调用关系,构建服务调用拓扑图,再根据数据的时间戳以及微服务与容器的对应关系构建成属性图,属性图包括一个邻接矩阵A和一个特征矩阵X,其中所述邻接矩阵表示一次用户请求的微服务请求路径,也就是服务调用拓扑图;特征矩阵表示一次用户请求中所有微服务的一系列特征,包括微服务自身的响应时间以及对应span时间戳时刻所处容器的性能指标。
图2为本实施例中根据每条调用链中的span信息构建用户请求的调用拓扑图,具体而言,如图2所示,根据分布式链路系统收集到的调用链表示一次用户请求所调用微服务之间的基本信息,其中每一行代表一个span(包括一次调用的调用方和被调用方以及调用和被调用方的时间戳),构建服务调用拓扑图并计算出每一次调用的响应时间(被调用方返回给调用方的时间戳减去被调用方收到调用方请求的时间戳);图3为本实施例中根据调用链和微服务所在容器的性能指标构建成属性图的过程,具体而言,如图3所示,将服务调用拓扑图转换成邻接矩阵的形式,再将用户请求所调用微服务对应容器的性能指标与分布式链路系统收集到调用微服务的响应时间按照时间戳对齐的方式进行组合,根据此方法将一次用户请求构建成属性图的形式,这种表示方式不仅能够反映出每个服务的服务级指标SLO(service-levelobjective,例如响应时间),还能反映微服务系统实时的健康状态;属性图由一个邻接矩阵和一个特征矩阵构成,其中所述邻接矩阵表示一次用户请求的微服务请求路径,特征矩阵表示所调用微服务的一系列特征,包括一次用户请求中自身的响应时间和所处容器的性能指标。
S2、根据每条调用链中拥有的微服务种类对预处理后的数据进行分类处理;
预处理后的数据样本,依据每个数据样本所包括的微服务种类生成0-1编码,即一次用户请求中访问的微服务标记为1,未访问的微服务标记为0,例如,[0,1,0,1,1]表示此次用户请求访问了微服务系统中的二、四和五号微服务;
利用K-Means++聚类算法对于所有数据样本的0-1编码进行聚类,得到多个聚类簇,基于同一种业务的所有用户请求路径相似的假设,每一个数据样本的类别代表整个微服务系统所提供的一种业务类型;对于每一个数据样本的类别自适应的去除没有访问的微服务节点及其对应特征,以降低计算复杂度,加快模型训练和检测速度。
基于同一种业务的所有用户请求路径相似的假设,每一个类代表整个微服务系统所提供的一种业务类型,包含该业务所有可能访问到的微服务种类;对于所有需要进行异常检测的样本(测试集),计算每个样本与所有聚类簇的欧氏距离,将其归入欧氏距离最小的簇中进行异常检测;
使用K-Means++聚类算法将预处理后的属性图数据进行聚类;K-Means是经典的聚 类算法之一,其核心思想是随机选取第一个聚类中心,在选取第
Figure DEST_PATH_IMAGE092
个聚类中心时,距离前
Figure DEST_PATH_IMAGE093
个聚类中心越远的点被选中的概率就越高,其中
Figure DEST_PATH_IMAGE094
;K-Means++聚类过程中样 本和聚类中心点的距离、样本点
Figure DEST_PATH_IMAGE095
被选中为聚类中心的概率
Figure DEST_PATH_IMAGE096
的计算分别如公式(1) 和公式(2)所示:
Figure DEST_PATH_IMAGE097
(1)
Figure DEST_PATH_IMAGE098
(2)
其中
Figure DEST_PATH_IMAGE099
是数据样本的维度,
Figure DEST_PATH_IMAGE100
Figure DEST_PATH_IMAGE101
分别是样本点
Figure DEST_PATH_IMAGE102
和聚类中心
Figure DEST_PATH_IMAGE103
的第
Figure DEST_PATH_IMAGE104
维数据 样本。
S3、使用基于密度的聚类算法对每一类数据进行降噪处理,得到异常检测模型训练所需要的数据集;
考虑到训练集中可能存在的噪声,对于每一个聚类簇中的数据样本,进一步的采用基于密度的聚类算法DBSCAN进行降噪处理,具体实施步骤如下:
将属性图中的特征矩阵X展开为一维向量(1,N*F),其中N表示微服务种类数,F表示微服务特征维度;基于同一种服务中所有正常请求的特征都相似的假设,采用基于密度的聚类算法能够提取出每一类服务的正常特征模,即将S2中分好类的训练数据集输入到基于密度的聚类算法中,只选择聚类结果中样本数量最多的一个簇作为异常检测模型训练所需要的数据集,降低异常样本对模型训练的影响。
S4、使用训练好的基于图神经网络的异常检测模型对实时保存的数据样本进行异常检测,得到每一个数据样本的异常概率;
如图4所示,基于图神经网络的异常检测模型包括图变分自编码器(VGAE)和基于LSTM自编码器(LSTM-AE)两个部分,图变分自编码器的目的是为了提取数据样本的拓扑特征,并检测是否存在拓扑结构异常,而LSTM自编码器的目的是为了学习数据样本在时间维度上的特征,并检测是否存在微服务相关特征异常;
通过设置两个超参数
Figure DEST_PATH_IMAGE105
Figure DEST_PATH_IMAGE106
将两部分的损失值进行线性加和得到异常检测模型 最终的损失值
Figure DEST_PATH_IMAGE107
,并以此作为异常得分,损失值越大的样本是异常样本的概率越高, 计算公式如下:
Figure DEST_PATH_IMAGE108
(3)
其中,
Figure 929808DEST_PATH_IMAGE105
Figure 640275DEST_PATH_IMAGE106
两个超参数根据图变分自编码器(VGAE)的损失值
Figure DEST_PATH_IMAGE109
和基于 LSTM自编码器(LSTM-AE)的损失值
Figure DEST_PATH_IMAGE110
之间的数量级差值来确定,初始设定为
Figure 587502DEST_PATH_IMAGE105
Figure 699815DEST_PATH_IMAGE106
=1:150。
基于图神经网络的异常检测模型中的图变分自编码器(VGAE)部分包括编码器和解码器,编码器的目的是充分提取拓扑特征,并将拓扑特征映射到隐空间中,而解码器的目的是通过对提取的拓扑特征解码,重构输入数据样本的拓扑结构;
图变分自编码器(VGAE)的输入数据样本为
Figure DEST_PATH_IMAGE111
,其中
Figure DEST_PATH_IMAGE112
代表一次用户请求经过数据预处理得到的属性图,按照用户请求的时间顺序排序,
Figure DEST_PATH_IMAGE113
Figure DEST_PATH_IMAGE114
表示输入序列
Figure DEST_PATH_IMAGE115
的长度,输入序列
Figure 423531DEST_PATH_IMAGE115
是基于请求时间排序;根据 属性图的组成,
Figure 418032DEST_PATH_IMAGE115
可以分为
Figure DEST_PATH_IMAGE116
Figure DEST_PATH_IMAGE117
,其中
Figure DEST_PATH_IMAGE118
Figure DEST_PATH_IMAGE119
分别代表对应
Figure 106633DEST_PATH_IMAGE112
的邻接矩阵和 特征矩阵,
Figure DEST_PATH_IMAGE120
表示属性图的节点数,即微服务种类数,
Figure DEST_PATH_IMAGE121
表示属性图的特征维度;
图变分自编码器(VGAE)是为图结构数据设计的,整体结构基于变分自动编码器 (VAE),图变分自编码器(VGAE)使用两层的图卷积层(GCN)作为编码器部分,将预处理得到 属性图的邻接矩阵和属性矩阵编码到隐藏层
Figure DEST_PATH_IMAGE122
中;图变分自编码器(VGAE)的定义如下:
Figure DEST_PATH_IMAGE123
(4)
Figure DEST_PATH_IMAGE124
(5)
Figure DEST_PATH_IMAGE125
(6)
其中,
Figure DEST_PATH_IMAGE126
Figure DEST_PATH_IMAGE127
分别代表第一层GCN
Figure DEST_PATH_IMAGE128
和第二层GCN
Figure DEST_PATH_IMAGE129
的权重矩阵;X代表输入 的特征矩阵,使用
Figure DEST_PATH_IMAGE130
作为第一层GCN输出的激活函数,
Figure DEST_PATH_IMAGE131
Figure DEST_PATH_IMAGE132
是第二层GCN
Figure 650616DEST_PATH_IMAGE129
的输出 值,分别代表近似后验的平均值和标准偏差,
Figure DEST_PATH_IMAGE133
表示一个取样于正太分布
Figure DEST_PATH_IMAGE134
的随机 变量,
Figure DEST_PATH_IMAGE135
代表对称归一化的邻接矩阵,归一化公式如下:
Figure DEST_PATH_IMAGE136
(7)
其中,
Figure DEST_PATH_IMAGE137
代表输入序列
Figure DEST_PATH_IMAGE138
中输入数据样本的邻接矩阵,
Figure DEST_PATH_IMAGE139
代表邻接矩阵对应 的度矩阵;通过两层的GCN进一步提取节点的拓扑特征,得到更为准确的微服务节点表示, 考虑到不同邻居节点对于节点自身的影响不同,采用图注意力机制(Graph Attention)对 所有微服务的特征表示赋予不同的权重,计算公式如下:
Figure DEST_PATH_IMAGE140
(8)
Figure DEST_PATH_IMAGE141
(9)
其中,
Figure DEST_PATH_IMAGE142
表示第
Figure DEST_PATH_IMAGE143
个微服务的隐藏状态
Figure DEST_PATH_IMAGE144
和第
Figure DEST_PATH_IMAGE145
个微服务的状态隐藏状态
Figure DEST_PATH_IMAGE146
的相关系数,可以通过神经网络来学习
Figure DEST_PATH_IMAGE147
,其中
Figure DEST_PATH_IMAGE148
Figure DEST_PATH_IMAGE149
是需要学习的权重参数,K代表节 点所拥有的邻接节点数量,最后使用
Figure DEST_PATH_IMAGE150
归一化得到归一化权重
Figure DEST_PATH_IMAGE151
,再对编码 器的隐藏层的状态进行加权求和并通过非线性激活函数sigmoid函数得到每个微服务最终 的编码向量
Figure DEST_PATH_IMAGE152
Figure DEST_PATH_IMAGE153
(10)
解码器部分采用内积(innerproduct)的方式对编码得到的隐藏层
Figure DEST_PATH_IMAGE154
进行解码, 输出重建后的邻接矩阵
Figure DEST_PATH_IMAGE155
,具体如下:
Figure DEST_PATH_IMAGE156
(11)
图变分自编码器(VGAE)的损失函数与VAE相同,通过计算重建误差与正则化项之 和得到图变分自编码器(VGAE)的损失值
Figure DEST_PATH_IMAGE157
;重建误差即计算属性图的邻接矩阵
Figure DEST_PATH_IMAGE158
与图变分自编码器(VGAE)重构得到的邻接矩阵
Figure DEST_PATH_IMAGE159
之间的交叉熵;正则化项即用于测量一般 正态分布与标准正态分布差异的KL距离(Kullback–Leibler divergence)。
基于图神经网络的异常检测模型中的LSTM自编码器(LSTM-AE)部分包括编码器和解码器,其中编码器部分采用多层的堆叠LSTM神经网络来实现,目的是充分提取微服务特征数据的时序特征,具体如下:
LSTM自编码器(LSTM-AE)的编码器的LSTM单元的状态传递时需要同时考虑到前一个LSTM单元的隐层状态和上一层LSTM单元的隐层状态,即:
Figure DEST_PATH_IMAGE160
(12)
其中,
Figure DEST_PATH_IMAGE161
代表 LSTM自编码器(LSTM-AE)的输入特征矩阵,按照时间顺序排序,T代 表LSTM自编码器的时间步参数,
Figure DEST_PATH_IMAGE162
,为了充分考虑微服务的特征属性存在拓扑 结构上的相关依赖,这里使用VGAE编码器的第一层图注意力卷积层的输出代替原始属性图 的特征矩阵,
Figure DEST_PATH_IMAGE163
Figure DEST_PATH_IMAGE164
分别代表第
Figure DEST_PATH_IMAGE165
层,
Figure DEST_PATH_IMAGE166
-1时刻的记忆单元状态和隐藏层状态,
Figure DEST_PATH_IMAGE167
表示多层的堆叠LSTM神经网络的层数;
经过多层的堆叠LSTM神经网络的特征提取,最终得到每个时刻的隐藏层向量分别 为
Figure DEST_PATH_IMAGE168
,以最后一层的最后一个时刻的记忆单元状态和隐藏层状态
Figure DEST_PATH_IMAGE169
,
Figure DEST_PATH_IMAGE170
作为编码得到的特征
Figure DEST_PATH_IMAGE171
解码器部分采用单层LSTM神经网络来实现,基于单层LSTM对编码得到的特征
Figure 238242DEST_PATH_IMAGE171
行解码,输出重建后的特征矩阵
Figure DEST_PATH_IMAGE172
解码器的LSTM的状态更新如下:
Figure DEST_PATH_IMAGE173
(13)
其中
Figure DEST_PATH_IMAGE174
表示前一时刻的隐藏层状态,
Figure DEST_PATH_IMAGE175
表示解码器对于t-1时刻的输出 结果,
Figure 595405DEST_PATH_IMAGE174
Figure DEST_PATH_IMAGE176
构成,
Figure 946752DEST_PATH_IMAGE171
表示编码器输出的编码向量;解码器的第一个 时刻使用编码向量
Figure 1033DEST_PATH_IMAGE171
来初始化隐藏层的状态和记忆单元的状态,输入为0;通过计算重构 得到的属性图特征矩阵
Figure 209161DEST_PATH_IMAGE172
和原始特征矩阵
Figure DEST_PATH_IMAGE177
之间的均方差(MSE)得到LSTM自编码器 (LSTM-AE)的损失值
Figure DEST_PATH_IMAGE178
图5为本实施例中整体流程示意图,具体而言,如图5所示,将目标微服务系统利用Kubernetes部署在多台服务器上,每个容器运行一个微服务实例,通过cadvisor或轮询的方式读取/proc/stat收集微服务所在容器的性能指标,再通过部署分布式链路追踪系统(例如zipkin和jeager)收集微服务的服务级指标,将收集到的数据按步骤S1和S2处理成属性图的形式存储到数据库中(例如Prometheus或Neo4j等),再使用训练好的基于图神经网络的异常检测模型对实时保存的数据样本进行异常检测,得到每一个数据样本的异常概率,并根据结果给出响应的告警信息。
S5、设置异常概率阈值,根据数据样本的异常概率判断该数据样本是否为异常数据样本,大于异常概率阈值的被认为是异常数据样本,反之则是正常数据样本,得到异常检测的结果;
根据训练好的基于图神经网络异常检测模型对收集并存储到的微服务数据样本进行异常检测,得到每个数据样本的异常概率,并且设定异常概率的阈值为模型历史训练损失的均值与三倍标准差之和,大于阈值则判定为异常数据样本,否则为正常数据样本。
本实施例中,本发明在开源微服务框架Train Ticket上进行了实验。实验通过将微服务系统Train Ticket部署在拥有5台服务器的集群上,利用locust等工具模拟用户请求生成负载,再根据分布式链路追踪系统收集用户请求的相关信息,例如zipkin和skywalking等,以及微服务间的调用关系构建微服务调用关系图,同时,采集微服务所处容器的性能指标特征进行数据转换。使用K-means++和DBSCAN聚类算法对预处理好的数据样本进行过滤选择,剔除大量存在噪声、无效的数据。选择后的数据样本以邻接矩阵和特征矩阵的形式作为基于图神经网络的异常检测模型输入,用于微服务的异常检测。然后计算异常检测模型中两部分的损失值并进行加权求和得到每个数据样本的异常概率,对比设定的阈值,来表明微服务系统是否存在异常情况。
图6示出了本发明的一个实施例在Train Ticket上的实验结果,其中TraceGra表示本发明。实验结果表明,相比于现有方法,本发明的方法误判率更低,具有更高的诊断准确性,相比于TraceAnomaly将所有不同的span编码成向量的形式,造成调用链编码稀疏,需要巨大的时间开销,本发明通过对每一类属性图进行自适应去除孤立点的处理,能够显著降低模型的训练时间,且以属性图的形式表示调用链能更直观的体现异常的类型,节点属性维度可以根据实际应用场景进行自适应伸缩,具有良好的可扩展性。
实施例2:
相比于实施例1,本实施例在开源微服务系统Sock Shop上进行了实验。
实施例3:
相比于实施例1,本实施例在开源微服务系统TeaStore上进行了实验。
实施例2和实施例3中,与TrainTicket火车订票系统功能不同,主要功能为网络商城购物,一个是售卖袜子,另一个是售卖茶叶。实验利用Locust模拟用户登录注册和在线购物的行为,通过zipkin收集所有用户请求的调用链数据,输入到异常检测模型中,实现了较好的异常检测精度。

Claims (3)

1.一种基于调用链的微服务异常检测方法,其特征在于,包括以下步骤:
S1、对调用链中所有微服务的响应时间及对应微服务所在容器的性能指标进行预处理;所述调用链中所有微服务的响应时间指利用分布式链路追踪系统收集到的span数据中每个微服务对于用户请求的响应时间,若存在多个span数据的调用微服务与被调用微服务相同,则该微服务的响应时间为多个相同span数据的平均值;
所述微服务所在容器的性能指标包括微服务运行所在容器的CPU使用率、内存使用率、磁盘使用率和网络使用率;所述预处理包括缺失值处理、归一化处理和数据格式转换处理;
所述缺失值处理指对于容器的性能指标而言,间隔的缺失值即性能指标的某行或某列的连续缺失值不超过5个,采用最近的12个非缺失值进行线性插值补全修复;
所述归一化处理指对经过缺失值处理后的调用链中所有微服务的响应时间及对应微服务所在容器的性能指标进行归一化,让其分布在[0,1];
所述数据格式转换处理指根据分布式链路系统收集到的span数据中的父span与子span之间的调用关系,构建服务调用拓扑图,再根据数据的时间戳以及微服务与容器的对应关系构建成属性图,属性图包括一个邻接矩阵A和一个特征矩阵X,其中所述邻接矩阵表示一次用户请求的微服务请求路径,也就是服务调用拓扑图;特征矩阵表示一次用户请求中所有微服务的一系列特征,包括微服务自身的响应时间以及对应span时间戳时刻所处容器的性能指标;
S2、根据每条调用链中拥有的微服务种类对预处理后的数据进行分类处理;预处理后的数据样本,依据每个数据样本所包括的微服务种类生成0-1编码,即一次用户请求中访问的微服务标记为1,未访问的微服务标记为0,利用K-Means++聚类算法对于所有数据样本的0-1编码进行聚类,得到多个聚类簇,基于同一种业务的所有用户请求路径相似的假设,每一个数据样本的类别代表整个微服务系统所提供的一种业务类型;对于每一个数据样本的类别自适应地去除没有访问的微服务节点及其对应特征,以降低计算复杂度,加快模型训练和检测速度;使用K-Means++聚类算法将预处理后的属性图数据进行聚类;K-Means是经典的聚类算法之一,其核心思想是随机选取第一个聚类中心,在选取第i个聚类中心时,距离前i-1个聚类中心越远的点被选中的概率就越高,其中i>1;K-Means++聚类过程中样本和聚类中心点的距离、样本点P被选中为聚类中心的概率p(x)的计算分别如公式(1)和公式(2)所示:
Figure FDA0004005037190000021
Figure FDA0004005037190000022
其中m是数据样本的维度,x代表样本点P,bi是聚类中心B的第i维数据样本;P(x)为样本点P被选中为聚类中心的概率,V为样本集;
S3、使用基于密度的聚类算法对每一类数据进行降噪处理,得到异常检测模型训练所需要的数据集;
S4、使用训练好的基于图神经网络的异常检测模型对实时保存的数据样本进行异常检测,得到每一个数据样本的异常概率;基于图神经网络的异常检测模型包括图变分自编码器和基于LSTM自编码器两个部分,图变分自编码器的目的是为了提取数据样本的拓扑特征,并检测是否存在拓扑结构异常,而LSTM自编码器的目的是为了学习数据样本在时间维度上的特征,并检测是否存在微服务相关特征异常;
通过设置两个超参数α和β将两部分的损失值进行线性加和得到异常检测模型最终的损失值Ltotal,并以此作为异常得分,损失值越大的样本是异常样本的概率越高,计算公式如下:
Ltotal=α*LVGAE+β*LLSTM-AE (3)
其中,α和β两个超参数根据图变分自编码器的损失值LVGAE和基于LSTM自编码器的损失值LLSTM-AE之间的数量级差值来确定,初始设定为α∶β=1∶150;
基于图神经网络的异常检测模型中的图变分自编码器部分包括编码器和解码器,编码器的目的是充分提取拓扑特征,并将拓扑特征映射到隐空间中,而解码器的目的是通过对提取的拓扑特征解码,重构输入数据样本的拓扑结构;
图变分自编码器的输入数据样本为Tset={t1,t2,...,tn}|,其中ti代表一次用户请求经过数据预处理得到的属性图,按照用户请求的时间顺序排序,i=1~n,n表示输入序列Tset的长度,输入序列Tset是基于请求时间排序;根据属性图的组成,Tset可以分为
Figure FDA0004005037190000031
Figure FDA0004005037190000032
其中ai和xi分别代表对应ti的邻接矩阵和特征矩阵,m表示属性图的节点数,即微服务种类数,f表示属性图的特征维度;
图变分自编码器是为图结构数据设计的,整体结构基于变分自动编码器,图变分自编码器使用两层的图卷积层作为编码器部分,将预处理得到属性图的邻接矩阵和属性矩阵编码到隐藏层Z1中;图变分自编码器的定义如下:
Figure FDA0004005037190000033
Figure FDA0004005037190000034
Z1=μ+ε*σ (6)
其中,W1和W2分别代表第一层GCNh1和第二层GCNh2的权重矩阵;X代表输入的特征矩阵,使用ReLU作为第一层GCNh1输出的激活函数,μ和σ是第二层GCNh2的输出值,分别代表近似后验的平均值和标准偏差,ε表示一个取样于正态分布N(0,1)的随机变量,
Figure FDA0004005037190000035
代表对称归一化的邻接矩阵,归一化公式如下:
Figure FDA0004005037190000036
其中,A代表输入序列Tset中输入数据样本的邻接矩阵,D代表邻接矩阵对应的度矩阵;通过两层的GCN进一步提取节点的拓扑特征,得到更为准确的微服务节点表示,考虑到不同邻居节点对于节点自身的影响不同,采用图注意力机制对所有微服务的特征表示赋予不同的权重,计算公式如下:
Figure FDA0004005037190000041
Figure FDA0004005037190000042
其中,ejn表示第j个微服务的隐藏状态vj和第n个微服务的隐藏状态vn的相关系数,可以通过神经网络来学习ejn,其中W和
Figure FDA0004005037190000043
是需要学习的权重参数,K代表节点所拥有的邻接节点数量,最后使用Softmax归一化得到归一化权重ajn,再对编码器的隐藏层的状态进行加权求和并通过非线性激活函数sigmoid函数得到每个微服务最终的编码向量gj
Figure FDA0004005037190000044
解码器部分采用内积的方式对编码得到的隐藏层Z1进行解码,输出重建后的邻接矩阵
Figure FDA0004005037190000045
具体如下:
Figure FDA0004005037190000046
图变分自编码器的损失函数与VAE相同,通过计算重建误差与正则化项之和得到图变分自编码器的损失值LVGAE;重建误差即计算属性图的邻接矩阵A与图变分自编码器重构得到的邻接矩阵
Figure FDA0004005037190000047
之间的交叉熵;正则化项即用于测量一般正态分布与标准正态分布差异的KL距离;
基于图神经网络的异常检测模型中的LSTM自编码器部分包括编码器和解码器,其中编码器部分采用多层的堆叠LSTM神经网络来实现,目的是充分提取微服务特征数据的时序特征,具体如下:
LSTM自编码器的编码器的LSTM单元的状态传递时需要同时考虑到前一个LSTM单元的隐层状态和上一层LSTM单元的隐层状态,即:
Figure FDA0004005037190000051
其中,Xt代表LSTM自编码器(LSTM-AE)的输入特征矩阵,按照时间顺序排序,T代表LSTM自编码器的时间步参数,t=1~T,为了充分考虑微服务的特征属性存在拓扑结构上的相关依赖,这里使用VGAE编码器的第一层图注意力卷积层的输出代替原始属性图的特征矩阵,
Figure FDA0004005037190000052
Figure FDA0004005037190000053
分别代表第k层,t-1时刻的记忆单元状态和隐藏层状态,L表示多层的堆叠LSTM神经网络的层数;
经过多层的堆叠LSTM神经网络的特征提取,最终得到每个时刻的隐藏层向量分别为
Figure FDA0004005037190000054
以最后一层的最后一个时刻的记忆单元状态和隐藏层状态
Figure FDA0004005037190000055
作为编码得到的特征Z2
解码器部分采用单层LSTM神经网络来实现,基于单层LSTM对编码得到的特征Z2进行解码,输出重建后的特征矩阵
Figure FDA0004005037190000056
解码器的LSTM的状态更新如下:
Figure FDA0004005037190000057
其中St-1表示前一时刻的隐藏层状态,Y′t-1表示解码器对于t-1时刻的输出结果,St-1由(ht-1,ct-1)构成,Z2表示编码器输出的编码向量;解码器的第一个时刻使用编码向量Z2来初始化隐藏层的状态和记忆单元的状态,输入为0;通过计算重构得到的属性图特征矩阵
Figure FDA0004005037190000061
和原始特征矩阵Xt之间的均方差得到LSTM自编码器的损失值LLSTM-AE
S5、设置异常概率阈值,根据数据样本的异常概率判断该数据样本是否为异常数据样本,大于异常概率阈值的被认为是异常数据样本,反之则是正常数据样本,得到异常检测的结果。
2.根据权利要求1所述的一种基于调用链的微服务异常检测方法,其特征在于,步骤S3中,考虑到训练集中可能存在的噪声,对于每一个聚类簇中的数据样本,进一步的采用基于密度的聚类算法DBSCAN进行降噪处理,具体实施步骤如下:
将属性图中的特征矩阵X展开为一维向量(1,N*F),其中N表示微服务种类数,F表示微服务特征维度;基于同一种服务中所有正常请求的特征都相似的假设,采用基于密度的聚类算法提取出每一类服务的正常特征模,即将S2中分好类的训练数据集输入到基于密度的聚类算法中,只选择聚类结果中样本数量最多的一个簇作为异常检测模型训练所需要的数据集,降低异常样本对模型训练的影响。
3.根据权利要求1所述的一种基于调用链的微服务异常检测方法,其特征在于,步骤S5中,根据训练好的基于图神经网络异常检测模型对收集并存储到的微服务数据样本进行异常检测,得到每个数据样本的异常概率,并且设定异常概率的阈值为模型历史训练损失的均值与三倍标准差之和,大于阈值则判定为异常数据样本,否则为正常数据样本。
CN202211165473.8A 2022-09-23 2022-09-23 一种基于调用链的微服务异常检测方法 Active CN115269357B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211165473.8A CN115269357B (zh) 2022-09-23 2022-09-23 一种基于调用链的微服务异常检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211165473.8A CN115269357B (zh) 2022-09-23 2022-09-23 一种基于调用链的微服务异常检测方法

Publications (2)

Publication Number Publication Date
CN115269357A CN115269357A (zh) 2022-11-01
CN115269357B true CN115269357B (zh) 2023-02-14

Family

ID=83756738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211165473.8A Active CN115269357B (zh) 2022-09-23 2022-09-23 一种基于调用链的微服务异常检测方法

Country Status (1)

Country Link
CN (1) CN115269357B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115795342B (zh) * 2022-11-15 2024-02-06 支付宝(杭州)信息技术有限公司 一种业务场景分类的方法、装置、存储介质及电子设备
CN116366310B (zh) * 2023-02-28 2023-11-21 深圳市众志天成科技有限公司 一种基于信息安全的云服务方法及装置
CN116170514B (zh) * 2023-04-21 2023-07-18 华能信息技术有限公司 一种用于中台业务的服务策略调用实现方法及系统
CN116881571B (zh) * 2023-07-27 2024-01-12 广东麦视互联网科技有限公司 基于微服务的数据挖掘方法及系统
CN116680141B (zh) * 2023-07-31 2023-12-01 北京趋动智能科技有限公司 异常预测方法、装置、存储介质及电子设备
CN116679890B (zh) * 2023-08-02 2023-09-29 湖南惟储信息技术有限公司 存储设备安全管理系统及其方法
CN117370064B (zh) * 2023-10-31 2024-05-28 河北东软软件有限公司 一种基于容器技术的微服务系统
CN117591970B (zh) * 2024-01-18 2024-04-05 昆山曼赫电子科技有限公司 一种全自动组装设备的故障预警方法及系统
CN117972319B (zh) * 2024-04-02 2024-07-05 浙江大学 一种基于动态图自监督学习的调用链异常检测方法和装置
CN118443226A (zh) * 2024-05-28 2024-08-06 沃弗(南京)环境工程有限公司 基于ai的通风管道定点定量漏风监测与报警系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111914873A (zh) * 2020-06-05 2020-11-10 华南理工大学 一种两阶段云服务器无监督异常预测方法
CN113014421A (zh) * 2021-02-08 2021-06-22 武汉大学 一种面向云原生系统的微服务根因定位方法
CN113392893A (zh) * 2021-06-08 2021-09-14 北京达佳互联信息技术有限公司 业务故障的定位方法、装置、存储介质及计算机程序产品
CN113449660A (zh) * 2021-07-05 2021-09-28 西安交通大学 基于自注意增强的时空变分自编码网络的异常事件检测方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368372B2 (en) * 2016-06-03 2022-06-21 Nutanix, Inc. Detection of outlier nodes in a cluster
WO2022167840A1 (en) * 2021-02-04 2022-08-11 Telefonaktiebolaget Lm Ericsson (Publ) Profiling workloads using graph based neural networks in a cloud native environment
CN113961759B (zh) * 2021-10-22 2024-05-07 北京工业大学 基于属性图表示学习的异常检测方法
CN114610613A (zh) * 2022-03-08 2022-06-10 国家电网有限公司信息通信分公司 一种面向在线实时的微服务调用链异常检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111914873A (zh) * 2020-06-05 2020-11-10 华南理工大学 一种两阶段云服务器无监督异常预测方法
CN113014421A (zh) * 2021-02-08 2021-06-22 武汉大学 一种面向云原生系统的微服务根因定位方法
CN113392893A (zh) * 2021-06-08 2021-09-14 北京达佳互联信息技术有限公司 业务故障的定位方法、装置、存储介质及计算机程序产品
CN113449660A (zh) * 2021-07-05 2021-09-28 西安交通大学 基于自注意增强的时空变分自编码网络的异常事件检测方法

Also Published As

Publication number Publication date
CN115269357A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN115269357B (zh) 一种基于调用链的微服务异常检测方法
US10373056B1 (en) Unsupervised model building for clustering and anomaly detection
CN111314331B (zh) 一种基于条件变分自编码器的未知网络攻击检测方法
CN106529721B (zh) 一种深度特征提取的广告点击率预测系统及其预测方法
CN114297036A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN113032525A (zh) 虚假新闻检测方法、装置、电子设备以及存储介质
CN110289987B (zh) 基于表征学习的多智能体系统网络抗攻击能力评估方法
CN113516174B (zh) 调用链异常检测方法、计算机设备以及可读存储介质
CN110851654A (zh) 基于张量化数据降维的工业设备故障检测分类方法
CN115801463B (zh) 工业互联网平台入侵检测的方法、装置和电子设备
CN113314188B (zh) 图结构增强的小样本学习方法、系统、设备及存储介质
CN117034143B (zh) 一种基于机器学习的分布式系统故障诊断方法及装置
CN114048468A (zh) 入侵检测的方法、入侵检测模型训练的方法、装置及介质
CN114139589A (zh) 故障诊断方法、装置、设备与计算机可读存储介质
Zhang et al. Robust KPI anomaly detection for large-scale software services with partial labels
CN115905959A (zh) 基于缺陷因子的电力断路器关联性故障分析方法及装置
CN116894096A (zh) 一种基于递归双超图神经网络的新闻事件预测方法
CN117035697B (zh) 基于历史动态分析的itsm平台优化方法及系统
CN117194742A (zh) 一种工业软件组件推荐方法及系统
CN114049966B (zh) 一种基于链接预测的食源性疾病暴发识别方法和系统
CN113159976B (zh) 一种微博网络重要用户的识别方法
CN115510948A (zh) 一种基于鲁棒图分类的区块链钓鱼检测方法
CN114757495A (zh) 一种基于逻辑回归的会员价值量化评估方法
Munikoti et al. Bayesian graph neural network for fast identification of critical nodes in uncertain complex networks
Wojtkiewicz et al. Advances in Computational Collective Intelligence: 13th International Conference, ICCCI 2021, Kallithea, Rhodes, Greece, September 29–October 1, 2021, Proceedings

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant