CN117579524A - 一种微服务异常检测方法及装置、电子设备 - Google Patents

一种微服务异常检测方法及装置、电子设备 Download PDF

Info

Publication number
CN117579524A
CN117579524A CN202311489870.5A CN202311489870A CN117579524A CN 117579524 A CN117579524 A CN 117579524A CN 202311489870 A CN202311489870 A CN 202311489870A CN 117579524 A CN117579524 A CN 117579524A
Authority
CN
China
Prior art keywords
index
target
micro
final
node
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.)
Pending
Application number
CN202311489870.5A
Other languages
English (en)
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.)
Tianyi Safety Technology Co Ltd
Original Assignee
Tianyi Safety Technology Co Ltd
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 Tianyi Safety Technology Co Ltd filed Critical Tianyi Safety Technology Co Ltd
Priority to CN202311489870.5A priority Critical patent/CN117579524A/zh
Publication of CN117579524A publication Critical patent/CN117579524A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种微服务异常检测方法及装置、电子设备,该方法包括:在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;分别针对每个层级的每个节点,基于预设的多个指标类型,解析多模态数据,确定每个节点的每个指标类型对应的最终指标参数;以最终指标参数作为已训练的故障检测模型的输入,基于目标指标参数以及故障检测模型的目标指标权重,确定最终指标参数对应的目标异常分数;基于最终指标参数的目标异常分数与最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。以此解决现有微服务的异常检测,缺乏足够的灵活性,不利于准确发现的问题。

Description

一种微服务异常检测方法及装置、电子设备
技术领域
本发明涉及云计算技术领域,特别涉及一种微服务异常检测方法及装置、电子设备。
背景技术
当前阶段,针对微服务的异常检测大多基于单指标做异常检测,每个指标之间的检测相对独立,通过检测程序分析微服务下的相关指标,当单一指标出现问题,如接口响应超时,仍需凭借专家经验以及静态阈值的方式做检测,缺乏足够的灵活性,不利于准确发现问题。
发明内容
本申请的目的是提供一种微服务异常检测方法及装置、电子设备。用于解决现有微服务的异常检测,当单一指标出现问题仍需凭借专家经验以及静态阈值的方式做检测,缺乏足够的灵活性,不利于准确发现的问题。
第一方面,本申请实施例提供了一种微服务异常检测方法,所述方法包括:
在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;所述微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点;
分别针对每个层级的每个节点,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数;
针对得到的每个最终指标参数,分别执行如下步骤:
以所述最终指标参数作为已训练的故障检测模型的输入,基于所述目标指标参数以及所述故障检测模型的目标指标权重,确定所述最终指标参数对应的目标异常分数,其中,所述目标指标权重用于表征节点之间不同指标类型的关联度;
基于所述最终指标参数的目标异常分数与所述最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
在一些可能的实施例中,所述按照设定时间间隔获取微服务系统的多模态数据,包括:
基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
在一些可能的实施例中,所述基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数,包括:
基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;
将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数。
在一些可能的实施例中,所述方法还包括:
每经过预设时间周期,获取所述预设时间周期内的样本数据,其中,所述样本数据为多个节点的多个指标类型对应的指标参数;
基于获取的样本数据,对待训练的故障检测模型进行训练,得到所述已训练的故障检测模型。
在一些可能的实施例中,所述基于所述最终指标参数的目标异常分数与所述最终指标参数的预设阈值,确定发生异常的目标节点对应的目标指标类型,包括:
若所述目标异常分数大于所述预设阈值,确定所述最终指标参数对应节点为目标节点,所述最终指标参数对应的指标类型为所述目标指标类型。
第二方面,本申请实施例提供了一种微服务异常检测装置,所述装置包括:
获取多模态数据模块,用于在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;所述微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点;
确定最终指标参数模块,用于分别针对每个层级的每个节点,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数;
确定异常检测结果模块,用于针对得到的每个最终指标参数,分别执行如下步骤:以所述最终指标参数作为已训练的故障检测模型的输入,基于所述目标指标参数以及所述故障检测模型的目标指标权重,确定所述最终指标参数对应的目标异常分数,其中,所述目标指标权重用于表征节点之间不同指标类型的关联度;基于所述最终指标参数的目标异常分数与所述最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
第三方面,本申请实施例提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执上述第一方面提供的微服务异常检测方法。
第四方面,本申请实施例提供计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面提供的微服务异常检测方法。
本申请实施例,为了解决解决现有微服务的异常检测,当单一指标出现问题仍需凭借专家经验以及静态阈值的方式做检测,缺乏足够的灵活性,不利于准确发现的问题,本申请实施例基于eBPF的微服务多指标异常检测方法,对于eBPF技术在Kubernetes容器下的微服务,以及指标类型对应的初始指标参数的采集,可以直观的体现当前容器的运行状态;通过多指标类型的异常检测方式,可以更为精确的判断当前微服务是否存在异常,以及如果存在异常,可以定位到精准的根因;实现了故障预防的效果,在故障发生之前,提前感知预警并干预解决,保障微服务程序稳定运行。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请一个实施例的微服务异常检测方法的流程示意图;
图2为根据本申请一个实施例的微服务系统的拓扑结构示意图;
图3为根据本申请一个实施例的微服务系统整体拓扑示意图;
图4为根据本申请一个实施例的确定最终指标参数后的模型输入示意图;
图5为根据本申请一个实施例的故障检测模型中的目标指标权重的示意图;
图6为根据本申请一个实施例的模型的架构流程示意图;
图7为根据本申请一个实施例的异常检测与故障检测模型训练的整体示意图;
图8为根据本申请一个实施例的微服务异常检测方法的整体示意图;
图9为根据本申请一个实施例的微服务异常检测装置结构示意图;
图10为根据本申请一个实施例的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例的描述中,除非另有说明,术语“多个”是指两个或两个以上,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。方法在实际的处理过程中或者控制设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
鉴于相关技术中解决现有微服务的异常检测,当单一指标出现问题仍需凭借专家经验以及静态阈值的方式做检测,缺乏足够的灵活性,不利于准确发现的问题。本申请提出一种微服务异常检测方法及装置、电子设备,可以更为精确的判断当前微服务是否存在异常,以及如果存在异常,可以定位到精准的根因;实现了故障预防的效果,在故障发生之前,提前感知预警并干预解决,保障微服务程序稳定运行。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面结合附图对本申请实施例中的微服务异常检测方法进行详细说明。
参见图1示出了本申请一个实施例提供的微服务异常检测方法流程示意图,包括:
步骤101:在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点。
具体来讲,参见图2为本申请所涉及的微服务系统的拓扑结构图,第一层级代表一个业务涉及至少一个微服务,第二层级代表一个微服务涉及至少一个数组机(node),第三层级代表一个数组机涉及至少一个容器(pod)。微服务异常检测是实时进行的,例如当前时刻为5点30分1秒,预设时间段为4秒,时间间隔为1秒,即首先获取5点30分1秒,5点30分2秒,5点30分3秒,5点30分4秒四个时间点的微服务系统的多模态数据。
作为一种可选的实施方式,按照设定时间间隔获取微服务系统的多模态数据,包括:基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
具体来讲,现有技术手段上,通过引入CAT、ZipKin、Pinpoint等技术,通过集成此类技术完成埋点程序的开发,通过拦截请求信息,将请求信息,按照traceId、spanId、parentSpanId等信息生成调用链关系。此类技术多为侵入式采集,为了适配技术的需要,经常需要额外做一些定制化开发,实现方式比较复杂。为了解决微服务trace跟踪和网络请求的信息采集,内核就是绝佳采集位置。随着eBPF技术的发展,为快速、安全的采集此类数据提供了可能性。本申请基于eBPF对数据进行采集。eBPF是一项可以安全地在内核中运行沙盒程序的技术,无需修改程序系统代码,即可在内核用户态程序事件发生时运行,固基于eBPF可以更安全、高效、准确的分析微服务多模态数据,简化了微服务的异常检测难度。
需要说明的是,多模态数据的采集主要分为内核态和用户态两部分,内核态面向Kubernetes容器内核部分,通过监听内核时间获取响应数据,用户态为对外交互部分,主要在于业务处理。其中,内核态:通过BCC框架,调用定义的一些库函数,开发网络请求采集程序,并动态加载eBPF程序并挂载到内核探针上,用于监听内核时间,并对内核事件进行协议推导,筛选出网络请求的协议数据,并将数据进一步处理后,送入eBPF自带的数据结构Map中,供用户态程序读取;用户态:读取eBPF程序推送的数据,如微服务的trace跟踪、网络请求数据,调用Kubernetes API Server程序,过滤出基于微服务的各类网络请求数据,以及微服务的运行状态,依照微服务为核心,计算出黄金指标数据,如请求数/QPS、响应时间及分位数(P50、P90、P95、P99)、错误数、慢调用数等。
综上所述,首先通过eBPF技术,按照无侵入方式,在内核中构建一个内核执行引擎,用于订阅Kubernetes容器或者Pod里的内核事件,如文件读写、网络流量、trace跟踪等,当Kubernetes容器下的进程或者微服务产生网络请求交互,则记录下当前网络信息。
步骤102:分别针对每个层级的每个节点,基于预设的多个指标类型,解析多模态数据,确定每个节点的每个指标类型对应的最终指标参数。
具体来讲,节点包括上述步骤101中涉及的微服务、数组机和容器,即一个微服务、一个数组机或者一个容器都可称为一个节点;参见下表为预先设置的指标类型。
结合上表,参见图3为本申请涉及的微服务系统整体拓扑图,以三个微服务,微服务A、微服务B、微服务C为例,微服务B中涉及nodeA、nodeB,微服务C中涉及nodeC,nodeA中涉及pod,需要说明的是图3只是举例说明,实际应用中,同一个nodeA上有可能存在多台微服务的信息,且每个节点都具有相同的指标类型对应的参数。根据网络请求、trace跟踪等信息,调用Kubernetes API Server中请求信息,过滤出基于微服务的各类网络请求数据,以及微服务的运行状态,依照微服务为核心,计算出初始指标参数,如请求数/QPS、响应时间及分位数(P50、P90、P95、P99)、错误数、慢调用数等,并依赖于解析程序,按照预设时间段的颗粒度,将数据整合得到最终指标参数后,送至Kafka。
作为一种可选的实施方式,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数,包括:基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数。
具体来讲,每个节点在预设时间段内针对每个指标类型都有对应的最终指标参数,首先,针对任一个节点,确定该节点在每个时间点上,每个指标类型对应的初始指标参数,在预设时间段内,该节点针对该指标类型对应的参数即通过每个时间点对应的初始指标参数的平均值求得最终指标参数。参见下述公式,通过该公式计算一个序列中特定节点的在预设时间段中的指标参数的平均值。通过在序列中向后移动一个固定大小的时间窗口,并计算时间窗口内节点对应的初始指标参数的平均值来获得最终指标参数:
其中,MAi表示时间窗口的移动平均的结果即最终指标参数,其中的下标i表示第i个节点的移动平均值;xj表示原始序列中的节点,j是节点的索引;m是用于计算移动平均的窗口大小;w是窗口的宽度。
参见图4,分别表示经过计算之后,node1、node2、node3、pod1、pod2等节点在预设时间段中,针对个指标特征对应的最终指标参数。
例如,当前时刻为5点30分1秒,若获取到5点30分1秒、5点30分2秒,5点30分3秒,5点30分4秒。对于nodeA的CPU使用率如下数组(11%,12%,13%,14%)。
若选择窗口大小(即预设时间段)为3秒,窗口宽度(即时间间隔)为1秒:计算得到的最终指标参数:(11+12+13)/3。
接着,若向后移动一个数据点,计算接下来三秒的最终指标参数:(12+13+14)/3。如此类推,持续移动窗口并计算每个窗口内的平均值(即最终指标参数)。
确定若干最终指标参数以后,针对得到的每个最终指标参数,分别执行如下步骤。
步骤103:以最终指标参数作为已训练的故障检测模型的输入,基于目标指标参数以及故障检测模型的目标指标权重,确定最终指标参数对应的目标异常分数,其中,目标指标权重用于表征节点之间不同指标类型的关联度。
故障检测模型为预先训练的,从Elasticsearch中解析多模态数据作为训练样本数据,按照微服务为核心,建立数据特征,包括请求数/QPS、平均响应时间、P50、P90、P95、P99、错误数、慢调用数,以及运行状态(0:异常/1:正常)。基于ltsm图神经网络的算法,建立故障检测模型后,固化训练模型至HBase;具体来讲,抽取训练样本数据后,经过数据清洗、转换等ETL操作后,建立数据特征,根据时序数据特征(如:周期型、无序型、阶梯型),调用对应的算法引擎(如:上述MAi移动平均、LSTM、Prohet、Holt-Winter等),最终按照微服务+各指标类型为检测单位,输出每个指标类型的训练模型。
作为一种可选的实施方式,该方法还包括:每经过预设时间周期,获取所述预设时间周期内的样本数据,其中,所述样本数据为多个节点的多个指标类型对应的指标参数;基于获取的样本数据,对待训练的故障检测模型进行训练,得到所述已训练的故障检测模型。
具体来讲,本申请在通过故障检测模型实时监测异常时,故障检测模型定期也会自主训练,不断更新完善,预设时间周期为预先设定的经过预设时间,故障检测模型进入自主更新训练阶段,例如预设时间周期为1年,即经过一年的时间,获取在过去一年内的样本数据,对故障检测模型进行完善训练。故障检测模型中预先存有初始的目标指标权重,参见图5,E表示故障检测模型中的目标指标权重,每个数字代表,任意两个节点之间针对某一个指标类型的指标权重,例如针对CPU使用率的指标类型,若node1与node2互相影响效果不明显,则node1与node2针对CPU使用率的E值就会偏小,若node1与pod1互相影响效果明显,则node1与pod1针对CPU使用率的E值就会偏大;假设阈值范围1-10,则node1与node2针对CPU使用率的E值可以为2,node1与pod1针对CPU使用率的E值可以为8。按照预设时间周期,训练故障检测模型的过程即为利用获取的预设时间周期内的样本数据对初始的目标指标权重进行调节的过程,使目标指标权重随时间推移,更加准确。
步骤104:基于最终指标参数的目标异常分数与最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
作为一种可选的实施方式,若所述目标异常分数大于所述预设阈值,确定所述最终指标参数对应节点为目标节点,所述最终指标参数对应的指标类型为所述目标指标类型。
具体来讲,故障检测模型在训练的过程中,TopoMAD方法中模型的架构流程参见图6;整个网络是一个随机seq2seq自动编码器,输入目标指标权重E和系统各个节点的最终指标参数信息X,通过GraphLSTM来获取系统的拓扑信息,进一步经过编码-解码的方式输出重构序列。GraphLSTM是编码器和解码器中的一部分,是图神经网络和LSTM的组合。将LSTM中的全连接层替换为图神经层即可得到GraphLSTM。TopoMAD利用随机模型VAE以完全无监督的方式对微服务进行异常检测,在包括正常和异常的数据上训练故障检测模型,同时还提出了无监督的阈值选择方法,该方法以无监督方法选择了一个阈值,该阈值使正常数据和异常数据集合之间的距离最大化。
从kafka中实时解析出最终指标参数,按照微服务为核心,建立数据特征,包括请求数/QPS、平均响应时间、P50、P90、P95、P99、错误数、慢调用数,调用故障检测模型,输出异常检测结果,并基于当前各个指标类型的异常检测结果,实时分析微服务运行是否存在异常。
在线采集后的最终指标参数经过故障检测模型计算后,如果异常分大于预设阈值就会触发报警。同时各个组件的异常分和组件之间权重关系也是作为定位问题的一个输入。
参见图7,为本申请涉及的异常检测与故障检测模型训练的整体图。
故障模型训练的过程包括,首先训练数据(即每经过预设时间周期,获取所述预设时间周期内的样本数据),数据预处理相当于基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数;建立特征工程以及数据分类时,通过各个维度监控指标,微服务链路信息采集和分类,形成相关核心监控和链路模型,例如Sname为微服务名称,微服务采集使用到哪些pod,通过pod漂移到哪台主机,确定当前微服务所关联的主机;异常检测算法引擎包括了故障检测模型训练中使用到的算法,接下来进行故障检测模型训练,并将模型固化到Hbase,形成异常检测模型库。
异常检测过程中,首先实时数据即为基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据,数据预处理与上述模型训练过程中的预处理步骤一样,此处不再赘述;接下来通过计算引擎调用故障检测模型开始异常检测,确定异常检测结果;然后指标影响度分析即确定最终指标参数对应节点为目标节点,最终指标参数对应的指标类型为目标指标类型,最后将异常检测结果输出。需要说明的是,在实际作业中,异常检测结果得出后,需要人工稽核,而且每经过预设时间周期,触发模型增量更新调度程序,进行故障检测模型的调试更新。
本申请基于eBPF的微服务多指标异常检测方法,对于eBPF技术在Kubernetes容器下的微服务,以及指标类型对应的初始指标参数的采集,可以直观的体现当前容器的运行状态;通过多指标类型的异常检测方式,可以更为精确的判断当前微服务是否存在异常,以及如果存在异常,可以定位到精准的根因;实现了故障预防的效果,在故障发生之前,提前感知预警并干预解决,保障微服务程序稳定运行。
参见图8为一种微服务异常检测方法的具体流程图。
步骤801:在预设时间段内,基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
步骤802:分别针对每个层级的每个节点,基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数。
步骤803:将每个时间点对应的初始指标参数的平均值,作为最终指标参数。
步骤804:针对得到的每个最终指标参数,以最终指标参数作为已训练的故障检测模型的输入,基于目标指标参数以及故障检测模型的目标指标权重,确定最终指标参数对应的目标异常分数。
步骤805:判断目标异常分数是否大于预设阈值,若是执行步骤806,若否从步骤801继续循环执行。
步骤806:确定最终指标参数对应节点为目标节点,最终指标参数对应的指标类型为目标指标类型。
实施例2
基于相同的发明构思,本申请还提供一种微服务异常检测装置,如图9所示,该装置包括:
获取多模态数据模块901,用于在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;所述微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点;
确定最终指标参数模块902,用于分别针对每个层级的每个节点,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数;
确定异常检测结果模块903,用于针对得到的每个最终指标参数,分别执行如下步骤:以所述最终指标参数作为已训练的故障检测模型的输入,基于所述目标指标参数以及所述故障检测模型的目标指标权重,确定所述最终指标参数对应的目标异常分数,其中,所述目标指标权重用于表征节点之间不同指标类型的关联度;基于所述最终指标参数的目标异常分数与所述最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
可选地,获取多模态数据模块901具体用于:基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
可选地,确定最终指标参数模块902具体用于:基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数。
可选地,确定异常检测结果模块903还用于:每经过预设时间周期,获取所述预设时间周期内的样本数据,其中,所述样本数据为多个节点的多个指标类型对应的指标参数;基于获取的样本数据,对待训练的故障检测模型进行训练,得到所述已训练的故障检测模型。
可选地,确定异常检测结果模块903具体用于:若所述目标异常分数大于所述预设阈值,确定所述最终指标参数对应节点为目标节点,所述最终指标参数对应的指标类型为所述目标指标类型。
在介绍了本申请示例性实施方式的微服务异常检测方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的微服务异常检测方法中的步骤。
下面参照图10来描述根据本申请的这种实施方式的电子设备130,即上述微服务异常检测设备。图10显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种微服务异常检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种微服务异常检测方法的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务端上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种微服务异常检测方法,其特征在于,所述方法包括:
在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;所述微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点;
分别针对每个层级的每个节点,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数;
针对得到的每个最终指标参数,分别执行如下步骤:
以所述最终指标参数作为已训练的故障检测模型的输入,基于所述目标指标参数以及所述故障检测模型的目标指标权重,确定所述最终指标参数对应的目标异常分数,其中,所述目标指标权重用于表征节点之间不同指标类型的关联度;
基于所述最终指标参数的目标异常分数与所述最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
2.根据权利要求1所述的方法,其特征在于,所述按照设定时间间隔获取微服务系统的多模态数据,包括:
基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
3.根据权利要求1或2所述的方法,其特征在于,所述基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数,包括:
基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;
将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每经过预设时间周期,获取所述预设时间周期内的样本数据,其中,所述样本数据为多个节点的多个指标类型对应的指标参数;
基于获取的样本数据,对待训练的故障检测模型进行训练,得到所述已训练的故障检测模型。
5.根据权利要求1所述的方法,其特征在于,所述基于所述最终指标参数的目标异常分数与所述最终指标参数的预设阈值,确定发生异常的目标节点对应的目标指标类型,包括:
若所述目标异常分数大于所述预设阈值,确定所述最终指标参数对应节点为目标节点,所述最终指标参数对应的指标类型为所述目标指标类型。
6.一种微服务异常检测装置,其特征在于,所述装置包括:
获取多模态数据模块,用于在预设时间段内,按照设定时间间隔获取微服务系统的多模态数据;所述微服务系统包括微服务、数组机、容器三个层级,每个层级包括至少一个节点;
确定最终指标参数模块,用于分别针对每个层级的每个节点,基于预设的多个指标类型,解析所述多模态数据,确定每个节点的每个指标类型对应的最终指标参数;
确定异常检测结果模块,用于针对得到的每个最终指标参数,分别执行如下步骤:以所述最终指标参数作为已训练的故障检测模型的输入,基于所述目标指标参数以及所述故障检测模型的目标指标权重,确定所述最终指标参数对应的目标异常分数,其中,所述目标指标权重用于表征节点之间不同指标类型的关联度;基于所述最终指标参数的目标异常分数与所述最终指标参数对应的预设阈值,确定发生异常的目标节点对应的目标指标类型。
7.根据权利要求6所述的装置,其特征在于,所述获取多模态数据模块具体用于:基于伯克利数据包过滤器eBPF按照时间设定时间间隔获取微服务系统的多模态数据,得到多个时间点对应的多模态数据。
8.根据权利要求6或7所述的装置,其特征在于,所述确定最终指标参数模块具体用于:基于预设的多个指标类型,分别解析每个时间点对应的多模态数据,得到每个时间点对应的初始指标参数;将每个时间点对应的初始指标参数的平均值,作为所述最终指标参数。
9.一种电子设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-5中任何一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-5中任何一项所述的方法。
CN202311489870.5A 2023-11-09 2023-11-09 一种微服务异常检测方法及装置、电子设备 Pending CN117579524A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311489870.5A CN117579524A (zh) 2023-11-09 2023-11-09 一种微服务异常检测方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311489870.5A CN117579524A (zh) 2023-11-09 2023-11-09 一种微服务异常检测方法及装置、电子设备

Publications (1)

Publication Number Publication Date
CN117579524A true CN117579524A (zh) 2024-02-20

Family

ID=89887286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311489870.5A Pending CN117579524A (zh) 2023-11-09 2023-11-09 一种微服务异常检测方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN117579524A (zh)

Similar Documents

Publication Publication Date Title
US10901727B2 (en) Monitoring code sensitivity to cause software build breaks during software project development
US10310968B2 (en) Developing software project plans based on developer sensitivity ratings detected from monitoring developer error patterns
US9600394B2 (en) Stateful detection of anomalous events in virtual machines
US8655623B2 (en) Diagnostic system and method
US9015006B2 (en) Automated enablement of performance data collection
CN110516971B (zh) 异常检测的方法、装置、介质和计算设备
US10223190B2 (en) Identification of storage system elements causing performance degradation
US11294754B2 (en) System and method for contextual event sequence analysis
US9720823B2 (en) Free memory trending for detecting out-of-memory events in virtual machines
KR20180108446A (ko) Ict 인프라 관리 시스템 및 이를 이용한 ict 인프라 관리 방법
US8918345B2 (en) Network analysis system
CN112148586A (zh) 机器辅助质量保证和软件改善
CN112000806B (zh) 异常日志监控分析方法、系统、设备及存储介质
US20190102240A1 (en) Plato anomaly detection
CN106598822B (zh) 一种用于容量评估的异常数据检测方法及装置
CN115640159A (zh) 一种微服务故障诊断方法及系统
CN110490132B (zh) 数据处理方法和装置
CN116089218A (zh) 基于Kubernetes的历史数据和趋势分析的动态基线告警方法及系统
US9455940B2 (en) Information processing apparatus and information processing method
US20200372367A1 (en) Cognitive methods and systems for responding to computing system incidents
CN114860542A (zh) 趋势预测模型的优化方法、优化装置、电子设备和介质
CN114911615A (zh) 微服务运行时智能预测调度的方法及应用
CN114202206A (zh) 系统异常根因分析方法及装置
CN117579524A (zh) 一种微服务异常检测方法及装置、电子设备
CN114297453B (zh) 告警预测方法、装置、电子设备及存储介质

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