买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:长沙理工大学
摘要:本发明属于Trace数据异常检测领域,涉及一种基于图神经网络的微服务架构下Trace异常检测方法。本发明使用了采样具有边特征的有向图来有效表示Trace类型的数据,使用图神经网络提取图表示向量,用基于超球损失函数优化模型,从而达到用较少的数据且无异常标签去训练,也可以得到了很好的检测性能,并准确检测各种异常Trace,可以实现检测微服务架构下调用链的异常。
主权项:1.一种基于图神经网络的微服务架构下Trace异常检测方法,包括以下步骤:步骤1:建立Trace异常检测框架在线Trace异常检测,Trace数据往往来自于系统或者应用随时间流产生的数据;一个Trace数据集D={t1,t2,...,tn}包含n个Trace,其中数据集D的Trace都正常,训练一个分类器c:ti→[0,1],去判断新的Trace是否异常,其中0为正常,1为异常;建立四个模块:Trace有向图构建、图表示学习、超球损失模块和异常检测;采样具有边特征的有向图来表示调用链数据,通过图神经网络得到图表示向量,利用超球损失函数代替交叉熵损失函数,正常的Trace在超球体内,避免了对异常标记的要求;首先,Trace有向图构建模块通过解析每一条Trace数据,将每一条Trace数据转换成对应的有向图g={V,E}表示,V代表Trace所构成图中的节点,也就是微服务,E代表图中的边,也就是微服务之间的调用关系;因此整个Trace数据可以用G={g1,g2,g3,...,gn}表示,其中gi表示第i条Trace所转化成的图;然后,图表示学习模块使用图结构以及节点和边特征来学习图表示向量,对于图g中的每个节点v,v∈V,都有一个名为hv的向量代表节点特征,图g中的每条边euv,e∈E,都有一个名为的向量代表边特征;图表示学习模块使用邻域聚合方法,其中通过聚合v的相邻节点和边的特征来迭代更新节点v的特征,最终得到图的表示向量hg;最后,通过将图表示向量进行训练得到一个超球面,正常Trace相互靠近,被包含在超球体内;对与新的Trace数据,它远离超球中心的形式被视为异常;步骤2:Trace有向图构建模块使用图神经网络来学习微服务架构业务产生的Tracemetric数据特征,以此来检测Trace是否异常;一个调用链的原始数据包含以下14种属性:调用链idtrace_id表示此调用链的唯一标识、时间戳timestamp表示每个调用的开始时间、结束时间endtime表示每个调用的结束时间,一个调用的调用方和被调用方s_t表示微服务s向微服务t发送请求,标签label表示当前调用链是否异常,0代表正常,1代表异常;同时每个调用具有延迟latency以及http状态http_status的信息,每个被调用的微服务具有CPU利用率cpu_use、内存使用率mem_use_percent、内存使用量mem_use_amount、文件读写速率file_readwrite_rate、网络接收发送速率net_receivesend_rate的信息;在一个调用链中,被调用微服务的指标是相同的;为了有效表示Trace类型的数据,采样具有边特征的有向图来表示;有向图由g={V,E}来表示,V表示节点,E表示边;图g中的每一个节点v,v∈V表示一个微服务实例,每个微服务实例包含的信息有7个指标CPU利用率cpu_use、内存使用率mem_use_percent、内存使用量mem_use_amount、文件读写速率file_readwrite_rate、网络接收发送速率net_receivesend_rate;使用名为hv的向量代表节点的7个指标特征,图中的有向边代表服务之间的调用关系如ts-admin-order-service→ts-order-other-service表示微服务调用方→被调用微服务;图g中的每条边euv有两个指标:延迟latency以及http状态http_status,使用名为的向量代表边的2个指标特征;步骤3:图表示学习模块1标准的图神经网络图神经网络是一种有效的图表示学习框架;GNN遵循递归邻域聚合或消息传递方案,其中每个节点聚合其邻居的特征向量以计算其新的特征向量;在聚合的k次迭代之后,节点由其变换的特征向量表示,该特征向量捕获节点的k跳邻域内的结构信息;然后可以通过池化获得整个图的表示;形式上,GNN的第k层是: 其中是第k次迭代时节点v的特征向量;初始化Xv表示节点的初始特征向量,Nv是与v相邻的一组节点;在GNN中,AGGRAEGATE与COMBINE的选择是至关重要的;对于节点分类,最终迭代的节点表示用于预测;对于图分类,READOUT函数从最终迭代中聚合节点特征,以获得整个图的表示hg,如公式2所示: 2带边特征的图神经网络理想情况下,强大的GNN可以通过将不同的图结构映射到嵌入空间中的不同表示来区分不同的图;然而在调用链数据中存在着微服务之间的调用指标,通过转化成图结构后,调用指标会保存在图中连接两个节点的边上;传统的神经图神经网络一般在汇聚迭代更新的时候只会处理节点特征,而不会处理边特征;如果使用传统的图神经网络,那么可使用的方法是把边特征转换成节点特征,比如指向被调用节点的边上的指标取平均作为特征放在被调用节点上;边上的指标往往包含了微服务之间复杂的关系和交互信息,可能对不同的节点有不同的影响,将其平均后可能掩盖了微服务之间的差异性,无法充分保留这些细节,导致特征模糊化和信息丢失,降低模型的表达能力;因此,进一步提出采用边特征的图神经网络来解决这些问题,将调用指标作为图的边特征,通过综合考虑节点和边特征,在汇聚的过程中,不仅考虑邻居节点的表示向量,还将边上的特征进行传递,目标节点收到来自邻居节点和边的信息后,需要对这些信息进行聚合,以更新节点和边的表示,整个过程可以迭代多次;带边特征的图神经网络通过这样汇聚方式,能够极大程度的保留微服务之间复杂的关系和交互信息,提高模型在图数据中的建模能力;因此能够提高模型对微服务调用链的敏感性,更有可能捕捉到微服务调用链中的异常模式;a带边特征的节点特征聚合与更新 其中为节点v在第k次迭代的表示,为节点u和v之间的边的特征向量,Nv为节点v相邻节点的集合;函数更新节点特征;此外,和f应该是内射的;初始化Xv是节点v的初始特征下向量;使用MLP对公式3中的f和进行建模和学习;用一个MLP对建模,因为MLPs可以表示函数的组合;由于采用one-hot编码的输入特征的总和自然是内射的,因此在第一次迭代中不需要MLP;然后更新节点表示; 其中是节点v在第k次迭代的表示,是节点u和v之间的边的特征向量,Nv是与节点v相邻的节点集,∈是可学习的参数b整个图的特征提取给定所有单个节点的表示向量,Readout函数产生整个图表示向量;图级别Readout的一个重要方面是,随着迭代次数的增加,对应的节点表示变得更加精细和全面;足够的迭代次数是实现良好区分能力的关键;为了从图神经网络中提取所有结构信息,使用来自模型所有迭代的信息; 其中图表示向量在第一次迭代后由表示,表示第二次迭代后的图表示向量,依此类推;然后,通过Readout获得每层中的图表示,然后跨MLP的所有层连接以获得整个图形表示向量hg;步骤4:超球损失模块将Trace异常检测任务化为单分类问题;单类分类问题旨在学习一个模型,该模型能够准确地描述被认为属于同一类的训练数据;对于异常检测任务,大多数训练样本是正常的,可以被视为同一类,而其他样本可以被识别为异常值例如,工作中的异常Trace;超球损失函数:超球损失首先应用在计算机视觉CV,图像识别中,也称为A-Softmax损失函数,类似于NLP中的一类SVM;如图3所示,超球面损失函数调整所有正态对数序列的分布;因此,异常标签不是必需的;其动机是正常的Trace应该集中在嵌入空间中并尽可能靠近超球面的中心,而异常的Trace应该尽可能远离超球面的中心;通过验证数据可以得到最佳超球面半径决策边界;超球面损失函数是样本到中心距离的均方误差和; 其中C是超球面的中心,hG是所有图表示向量的集合,表示第第i个Trace所转换成图后,通过迭代所得到的图表示向量;步骤5:异常检测在异常检测阶段,给定新的调用链,遵循与训练阶段相同的流程来生成由Trace转换后的图结构;然后输入到经过训练的模型中,以生成图表示向量,并计算异常得分;异常分数被定义为到学习的超球体的最短距离,其通过以下公式7计算:Shg=||hg-c||2-R27其中hg是图g的图表示向量,c是已知超球体的中心,R是已知超球体的最终半径;对应调用链的图表示向量hg,如果其异常分数即Shg大于0,则将其视为异常。
全文数据:
权利要求:
百度查询: 长沙理工大学 一种基于图神经网络的微服务架构下Trace异常检测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。