当前位置: 首页 > 专利查询>复旦大学专利>正文

基于图神经网络和对比学习的分布式系统调用链表示学习方法技术方案

技术编号:36802932 阅读:10 留言:0更新日期:2023-03-08 23:56
本发明专利技术属于软件工程与云计算技术领域,具体为一种基于图神经网络和对比学习的分布式系统调用链表示学习方法。本发明专利技术基于分布式系统运行时调用链数据,首先根据调用链数据构建操作调用图,并利用图对比学习和数据增强技术训练图神经网络模型,在线使用时可以使用该模型将调用链转化为向量表示,从而应用于多种下游任务;具体包括:操作调用图构建、操作表示、调用特征表示、调用链数据增强、图神经网络训练、在线部署使用;本发明专利技术可以帮助运维人员将大量原始调用链数据转化为向量数据,从而利用聚类、异常检测、分类等技术对调用链数据进行自动化分析,从而实现异常检测、调用链采样等目标。目标。目标。

【技术实现步骤摘要】
基于图神经网络和对比学习的分布式系统调用链表示学习方法


[0001]本专利技术属于软件工程与云计算
,具体涉及分布式系统调用链表示学习方法。

技术介绍

[0002]现代应用软件往往采用分布式架构,将应用程序分解为多个独立的服务,每个服务具有单独的进程和运行环境,进程间通过远程过程调用或消息等方式进行通信。这样的软件架构可以帮助实现服务独立开发、部署、运维的目标,从而支持现代应用软件对于可靠性、可扩展性、性能等的要求。
[0003]随着系统规模的增大,为了观察理解分布式系统的交互行为、及时发现异常调用并诊断,许多企业采用分布式追踪技术采集系统中不同进程间的交互行为。分布式追踪技术将由请求产生的调用链表示为一组结构化的日志,运维和开发人员可以分析调用链从而理解系统行为,但随着系统规模和用户规模的增大,系统产生的调用链数量也随之增大,且调用链具有复杂的因果结构,人工对调用链分析具有极大困难,如何自动化的分析海量调用链数据成为运维人员需要解决的一大问题。

技术实现思路

[0004]本专利技术的目的在于提供一种能够将复杂的调用链数据转化为低维向量表示的分布式系统调用链表示学习方法,从而支持多种自动化、智能化调用链分析场景。
[0005]本专利技术提供的分布式系统调用链表示学习方法,采用图神经网络和对比学习技术,使用分布式系统运行时产生的调用链数据,将每个调用链表示为操作调用图,图中节点和边上的属性描述了调用链的具体行为信息;通过收集历史调用链数据,使用数据增强和对比学习训练图神经网络模型;在生产系统使用时,将操作调用图输入该图神经网络模型,产生对应的低维向量,运维及开发人员可以使用聚类、异常检测等算法对产生的调用链低维向量进行分析,从而帮助系统运维和架构理解等应用。
[0006]本专利技术主要包括六个部分:操作调用图构建、操作表示、调用特征提取、调用链数据增强、图神经网络模型训练、在线部署使用。具体步骤如下:
[0007](一)操作调用图构建
[0008]调用链由一组日志组成,每个日志对应一次服务调用称为一个span,根据不同span间的因果关系,调用链可以被表示为一个有向无环图;本步骤解析原始span日志,并将每个调用链表示为一个操作调用图;具体包括以下子步骤:
[0009](1)通过分布式追踪系统采集系统运行时调用链;
[0010](2)根据调用的客户端类型创建一个节点,表示web调用、移动端调用或第三方调用,并添加一条由该节点指向根span节点的边;
[0011](3)对其余每一个span,创建一个节点表示该span,并添加一条由其父span节点指
向该节点的边。
[0012](二)操作表示
[0013]操作是指分布式系统中每个服务对外暴露的操作接口,调用链中每个span都对应于调用了某个操作;本步骤解析历史调用链数据,并根据操作依赖图生成操作表示向量;并将对应操作的向量表示作为每个操作调用图中每个节点的属性;具体包括以下子步骤:
[0014](1)构建操作依赖图;对历史调用链数据中出现过的所有操作,为每个操作创建一个节点,对出现过的客户端类型,为每种客户端类型创建一个节点;对于每个操作,如果其在历史调用链数据中调用过另一个操作,则添加一条由该节点指向另一个操作节点的边;
[0015](2)生成节点向量表示;基于上一步构建的操作依赖图,使用DeepWalk算法[1]训练节点表示模型,为每个节点生成向量表示。
[0016](三)调用特征提取
[0017]调用特征表示一次服务调用时产生的状态和对应的指标,对于每次调用定义10种特征,如下表所示;为每个调用计算得到的调用特征作为对应操作调用图中对应调用边的属性;
[0018][0019]调用特征的计算具体包括以下子步骤:
[0020](1)调用模式特征计算;
[0021]根据该次调用对应span的类型和开始结束时间判断是否异步调用和并行调用;
[0022](2)关键指标特征计算;
[0023]根据该次调用对应的客户端span和服务端span计算处理时间和网络延迟,处理时间等于服务端span的持续时间,网络延迟等于客户端span的持续时间减去服务端span的持续时间;处理时间占比使用持续时间除以整个调用链持续时间获得;处理时间偏差和网络延迟偏差使用以下公式计算:
[0024][0025]其中v
i
表示当前调用的持续时间或网络延迟,μ
i
和σ
i
分别表示历史数据中与该次调用的调用操作和被调用操作相同的调用的持续时间或网络延迟的均值和标准差;
[0026](3)外部执行状态特征计算;
[0027]根据该次调用开始和结束的时间计算其在对应的整个调用链持续时间中所处的分位数;计算公式如下:
[0028][0029][0030]其中,sst(i),set(i)分别表示这次调用的服务端开始时间和结束时间,st(t),et(t)分别表示对应的调用链的开始时间和结束时间;
[0031](4)内部执行状态特征计算;
[0032]根据该次调用中仅在本地执行没有调用其它操作的时间阶段计算内部执行状态;其中,本地执行时间占比计算公式如下:
[0033][0034]其中,cet(j),cst(j)分别表示该次调用中调用其它操作的客户端开始时间和客户端结束时间;
[0035](5)响应状态特征计算;
[0036]根据该次调用响应中的http(超文本传输协议(Hyper Text Transfer Protocol,HTTP))状态码转化为对应类别,并使用one

hot编码进行表示,具体来说分为五个类别,分别为:信息响应(100

199)、成功响应(200

299)、重定向(300

399)、客户端错误(400

499)、服务端错误(500

599)。
[0037](四)调用链数据增强;调用链数据增强生成粗粒度的异常调用链近似加入训练数据,从而减少对比学习中类别冲突和过平均带来的影响,也使得模型在线部署时可以降低系统变更、异常调用带来的影响;根据常见的调用链异常模式,本专利技术提出了六种调用链数据增强方法,对每条调用链选择百分之二十的边或节点进行增强,并重新计算增强后的特征取值;具体数据增强方法如下所示:
[0038](1)网络延迟;随机选择一个操作调用图中的一条边,增加网络延迟偏差特征的值(随机增加一个1到10中的数字);
[0039](2)性能下降;随机选择一个操作调用图中的一条边,增加处理时间偏差特征的值(随机增加一个1到10中的数字);
[0040](3)响应状态码改变;随机选择一个操作调用图中的一条边,更改响应状态码;
[0041](4)交换操作;随机选择一个操作调用图中除入口节点外的两个节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图神经网络和对比学习的分布式系统调用链表示学习方法,其特征在于,使用分布式系统运行时产生的调用链数据,将每个调用链表示为操作调用图,图中节点和边上的属性描述了调用链的具体行为信息;通过收集历史调用链数据,使用数据增强和对比学习训练图神经网络模型;在生产系统使用时,将操作调用图输入该图神经网络模型,产生对应的低维向量,运维及开发人员使用聚类、异常检测算法对产生的调用链低维向量进行分析,从而帮助系统运维和架构理解应用;具体步骤如下:(一)操作调用图构建;调用链由一组日志组成,每个日志对应一次服务调用称为一个span,根据不同span间的因果关系,调用链可以被表示为一个有向无环图;本步骤解析原始span日志,并将每个调用链表示为一个操作调用图;(二)操作表示;操作是指分布式系统中每个服务对外暴露的操作接口,调用链中每个span都对应于调用了某个操作;本步骤解析历史调用链数据,根据操作依赖图生成操作表示向量;并将对应操作的向量表示作为每个操作调用图中每个节点的属性;(三)调用特征提取;调用特征表示一次服务调用时产生的状态和对应的指标,对于每次调用定义10种特征,如下表所示;为每个调用计算得到的调用特征作为对应操作调用图中对应调用边的属性;(四)调用链数据增强;调用链数据增强生成粗粒度的异常trace近似加入训练数据,以减少对比学习中类别冲突和过平均带来的影响,也使得模型在线部署时可以降低系统变更、异常调用带来的影响;(五)图神经网络模型训练;将历史数据构造的操作调用图输入图神经网络以训练调用链表示模型;具体使用图神经网络和图对比学习进行调用链表示模型训练;每个mini

batch中的步骤包括:随机选择N
个训练数据;随机选择训练数据中的一部分执行调用链数据增强并替换增强前的数据;为所有训练数据生成两个对比视图,并将相同训练数据生成的对比视图视为正例,不同训练数据生成的视图视为反例;将所有视图输入图神经网络获得对应的向量表示,并计算对比损失函数优化模型参数;(六)在线部署使用;训练完成的模型部署在系统中,每当有新调用链产生,依次执行步骤(一)

(三)获得对应的操作调用图,将图输入图神经网络模型中得到该图的向量表示;该向量可用于下游任务,包括异常检测、调用链采样。2.根据权利要求1所述的分布式系统调用链表示学习方法,其特征在于,步骤(一)所述操作调用图构建,具体包括以下子步骤:(1)通过分布式追踪系统采集系统运行时调用链;(2)根据调用的客户端类型创建一个节点,表示web调用、移动端调用或第三方调用,并添加一条由该节点指向根span节点的边;(3)对其余每一个span,创建一个节点表示该span,并添加一条由其父span节点指向该节点的边。3.根据权利要求2所述的分布式系统调用链表示学习方法,其特征在于,步骤(二)所述操作表示,具体包括以下子步骤:(1)构建操作依赖图;对历史调用链数据中出现过的所有操作,为每个操作创建一个节点,对出现过的客户端类型,为每种客户端类型创建一个节点;对于每个操作,如果其在历史调用链数据中调用过另一个操作,则添加一条由该节点指向另一个操作节点的边;(2)生成节点向量表示;基于上一步构建的操作依赖图,使用DeepWalk算法训练节点表示模型,为每个节点生成向量表示。4.根据权利要求3所述的分布式系统调用链表示学习方法,其特征在于,步骤(三)所述调用特征提取,具体包括以下子步骤:(1)调用模式特征计算;根据该次调用对应span的类型和开始结束时间判断是否异步调用和并行调用;(2)关键指标特征计算;根据该次调用对应的客户端span和服务端span计算处理时间和网络延迟,处理时间等于服务端span的持续时间,网络延迟等于客户端span的持续时间减去服务端span的持续时间;处理时间占比使用持续时间除以整个调用链持续时间获得;处理时间偏差和网络延迟偏差使用以下公式计算:其中,v
i
表示当前调用的持续时间或网络延迟,μ
i
和σ
i
分别表示历史数据中与该次调用的调用操作和被调用操作相同的调用的持续时间或网络延迟的均值和标准差;(3)外...

【专利技术属性】
技术研发人员:彭鑫张晨曦
申请(专利权)人:复旦大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1