技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种微服务运行时异常检测方法和工具  >  正文

一种微服务运行时异常检测方法和工具

  • 国知局
  • 2024-08-30 14:41:51

本公开涉及计算机领域,更具体地讲,涉及一种微服务运行时异常检测方法和工具。

背景技术:

1、微服务是一种采用容器技术的、面向服务的软件架构风格。微服务以装载在容器中的、专注于特定功能与职责的微服务个体为基础,通过模组化的方式将它们组合成复杂的大规模服务。微服务系统在设计过程中,根据业务功能和设计流程将系统分割为不同部分,相较于结构简单的单体系统,微服务架构对系统运维提出了新的挑战。工业中的微服务系统通常是由运行在不同服务器上的、数千到数万个微服务个体组成的大规模分布式系统,在微服务架构下,众多微服务个体的实例之间有频繁的分布式跨网络协作、相互远程调用,在这样高流量的微服务系统中,一旦某个微服务个体产生延迟,可能会在短时间内耗尽系统资源,最终产生灾难性的后果,这为微服务系统的运维带来了巨大困难。

2、目前工业界中,分布式链路追踪系统广泛应用于微服务系统的智能运维中,这类系统能够跟踪微服务系统中的调用与执行过程,实时获取追踪、日志、监控三种微服务系统运行时数据,并对其进行记录,微服务异常检测方法围绕分布式链路追踪系统跟踪得到的三种运行时数据进行。现有的微服务运行时异常检测技术按照数据的建模方式可以分为基于模板、基于序列化、基于图三种。基于模板的微服务系统运行时数据建模方法在训练模型时,从追踪与日志数据集中提取出对应的模板集合,将每次微服务系统调用产生的运行时数据转化为对应的模板,并按照数据间的关系将模板建图,来得到正常与异常数据对应的模板图集合;微服务系统运行时数据的序列化建模方法在训练模型时,将训练集中的追踪与日志数据合并构建语料库,并对数据集中每次调用所产生的追踪与日志文本按照时间顺序拼接,得到每次调用对应的文本集,并将这些信息使用lstm、gru等用于学习序列化数据的神经网络模型进行训练,来提取正常与异常数据的追踪与日志特征;基于图的建模方法将微服务系统产生的运行时数据建图,并使用图神经网络模型学习图中的特征。

3、现有技术存在的问题为:

4、1.现有的基于模板与基于序列的方法没有同时使用微服务系统运行时产生的追踪与日志信息,丢失的信息会导致微服务异常检测的性能较低;

5、2.现有的基于图的微服务系统运行时异常检测方法在构建图时,得到的图具有大规模、扁平化的特征,图神经网络无法较好地学习图中的远距离特征,导致检测性能损失。

技术实现思路

1、本公开的实施例的目的在于提供一种微服务运行时异常检测方法和工具。

2、在一个总的方面,提供一种微服务运行时异常检测方法,设计将追踪与日志信息相结合的追踪-日志分层图构建算法将微服务系统运行时产生的追踪与日志信息构建成的追踪-日志图,设计并训练微服务系统运行时异常检测图神经网络模型,将所述追踪-日志图作为输入,判断微服务系统是否存在运行时异常;在线检测微服务系统存在运行时异常,对微服务系统运行状态进行可视化展示;

3、所述追踪-日志分层图构建算法为二层分层结构,包括底层图和上层图;

4、在构建追踪-日志的所述底层图时,将追踪中的跨度和日志作为图中的点,将跨度间的调用关系、跨度与日志的包含关系以及日志间的时序关系作为图中的边,首先跨度节点按照跨度间的调用关系建图,再将日志节点按照时序关系与包含关系插入到对应的追踪节点后,最终构建为追踪-日志图的底层图;

5、在构建追踪-日志图的所述上层图时,将追踪中的跨度节点按照跨度类型进行划分,将类别为entry的跨度节点作为起点,将类别为exit的跨度节点作为终点,将起点与对应的一个或多个终点间的跨度与日志节点在顶层图中收缩为一个超节点,底层图的节点与上层图的超节点按照收缩时的包含关系进行连接,超节点间按照其包含的底层图中的节点间的连接关系进行连接。

6、所述微服务异常检测图神经网络模型接收追踪-日志图作为输入,在接收一个追踪-日志图作为输入数据后,构建神经网络在图上进行三轮传播操作,每轮传播中,神经网络首先对底层图按照拓扑序,使用门控循环单元进行正向与反向的信息传播,在完成传播后将底层图中的节点的新状态上推至上层图,来更新上层图中超节点的状态,之后神经网络会对上层图按照拓扑序,使用门控循环单元进行正向与反向的信息传播,在完成传播后将上层图中的超节点的新状态下推至底层图,来更新底层图中节点的状态;

7、在完成三轮传播操作,得到底层图中节点的新的状态后,神经网络使用全局注意力池化技术,由底层图中节点的状态计算得到整个图的状态向量,并将图的状态向量送入深度支持向量描述算法,更新深度支持向量描述算法维护的超球体的半径,并使用loss函数反向传播更新图神经网络中的参数。

8、在训练过程中,使用分层图训练技术,在训练过程中先对由跨度和日志组成的底层图进行训练,将训练后的状态上推到顶层图后,在顶层图进行二次训练,训练结束后将顶层图节点的状态下推到底层图中。

9、在另一个总的方面,提供微服务异常检测工具,包含四个模块:微服务运行时追踪与日志收集与处理模块、运行时数据分析模块、微服务运行时状态展示模块、数据通信与缓存模块;

10、所述微服务运行时追踪与日志收集与处理模块从分布式链路追踪系统的存储模块中获取分布式链路追踪系统收集到的追踪与日志信息,并进行文本处理、向量化,以及追踪-日志图的构建,所述运行时数据分析模块应用一种微服务运行时异常检测方法,将构建得到的追踪-日志图送入预训练得到的图神经网络中进行异常检测,所述微服务运行时状态检测模块则对经过检测的追踪-日志图数据进行可视化展示,以及对异常数据进行实时预警;

11、所述数据通信与缓存模块周期性地从数据存储模块中拉取数据,每次拉取从apache skywalking的数据存储模块中获取未进行异常检测的追踪与日志数据,并使用redis进行缓存,在redis缓存中累积的运行时数据达到阈值,或者微服务运行时异常检测模块主动向数据通信与缓存模块请求数据时,将缓存中的数据交给数据通信与缓存模块进行异常检测。

12、所述微服务运行时状态展示模块有两种获取数据的模式,第一,数据通信与缓存模块在自身的redis缓存中累积的运行时数据达到阈值时,将数据发送给微服务运行时异常检测模块;第二,微服务运行时异常检测模块在自身空闲一段时间后会尝试从数据缓存与通信模块中请求数据;

13、获取到数据后,所述微服务运行时状态展示模块先对日志数据进行模板提取,之后对追踪与日志模板分别进行文本预处理,在完成文本预处理与向量化后,模块会使用追踪-日志图构建算法,将追踪与日志句向量组构建为追踪-日志分层图,之后送入门控图神经网络与深度支持向量描述组成的检测模型中进行异常检测,完成检测后将追踪-日志图与检测结果交给数据通信与缓存模块进行缓存。

14、本发明实施例的创新之处在于:

15、本发明提出一种微服务运行时追踪与日志数据的分层图建模方法,在该方法基础上提出一种微服务系统异常检测图神经网络模型,并以上述方法与模型为基础提出一种基于追踪与日志信息的微服务系统运行时异常检测方法。

本文地址:https://www.jishuxx.com/zhuanli/20240830/283375.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。