CN116149877A - 故障检测方法以及装置 - Google Patents

故障检测方法以及装置 Download PDF

Info

Publication number
CN116149877A
CN116149877A CN202310155729.5A CN202310155729A CN116149877A CN 116149877 A CN116149877 A CN 116149877A CN 202310155729 A CN202310155729 A CN 202310155729A CN 116149877 A CN116149877 A CN 116149877A
Authority
CN
China
Prior art keywords
link
node
call
alarm
nodes
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
CN202310155729.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.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Alipay Labs Singapore Pte 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 Alipay Labs Singapore Pte Ltd filed Critical Alipay Labs Singapore Pte Ltd
Priority to CN202310155729.5A priority Critical patent/CN116149877A/zh
Publication of CN116149877A publication Critical patent/CN116149877A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书实施例提供故障检测方法以及装置,其中所述故障检测方法包括:响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个链路节点之间的正常调用关系;基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集;通过该种方式可快速地判断微服务节点集中出现链路故障的节点,减少根因定位的时间。

Description

故障检测方法以及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种故障检测方法。
背景技术
微服务系统是一种将单个应用程序作为一组软件服务套件的软件架构形式,各个服务运行于独立的进程,彼此通过轻量级协议进行通信。随着计算机技术以及网络通信技术的快速发展,微服务系统架构成为一种广泛使用的服务器架构。
在任务越来越复杂的情况下,涉及的微服务节点也变得越来越多,通常一个调用请求在系统中可能会经过数百个微服务节点,监测系统通常需要针对多个微服务节点部署监测,检测各个微服务节点的时序数据,当线上监测发现任务指标存在异常时,通常需要人工检查各个微服务是否正常来逐个排查,不仅会耗费大量的人力,还会导致故障节点定位时间较长,影响微服务系统故障恢复的效率。
发明内容
有鉴于此,本说明书实施例提供了一种故障检测方法。本说明书一个或者多个实施例同时涉及一种故障检测装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种故障检测方法,包括:
响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;
基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;
基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个链路节点之间的正常调用关系;
基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
根据本说明书实施例的第二方面,提供了一种故障检测装置,包括:
信息获取模块,被配置为响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;
链路确定模块,被配置为基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;
关系集获取模块,被配置为基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个历史链路节点之间的正常调用关系;
节点确定模块,被配置为基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述故障检测方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述故障检测方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述故障检测方法的步骤。
本说明书一个实施例,通过响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个链路节点之间的正常调用关系;基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
具体的,通过获取待处理告警节点的告警信息,确定该待处理告警节点所在的目标链路的链路标识,以便于根据该链路标识在微服务节点集中,获取目标链路中各个链路节点之间当前异常的调用关系,即第一调用关系集,以及根据目标链路的历史调用数据获取各个链路节点之间的正常调用关系,即第二调用关系集,进而,根据两个调用关系集,确定微服务节点集中的故障节点集;通过该种自动化获取各个链路节点之间的调用关系,可快速地判断微服务节点集中出现链路故障的节点,减少根因定位的时间,提升微服务系统故障恢复的效率。
附图说明
图1是本说明书一个实施例提供的一种故障检测方法的场景示意图;
图2是本说明书一个实施例提供的一种故障检测方法的流程图;
图3是本说明书一个实施例提供的一种故障检测方法的获取节点调用关系对的示意图;
图4是本说明书一个实施例提供的一种故障检测方法的处理过程流程图;
图5是本说明书一个实施例提供的一种故障检测装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
微服务(或微服务架构):是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成;是一种软件开发技术-面向服务的体系结构(SOA)架构样式的一种变体,将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
链路:在大型系统的微服务构建中,一个系统通常包含数百个微服务模块,这些模块负责不同的功能,共同组成系统,而系统间也可以通过微服务进行交互。一次请求往往需要涉及多个应用、多个微服务,这些微服务的互相调用关系构建成了请求的调用链路。
Trace:表示一次完整的链路调用,从外部请求服务器开始,服务器返回最终结果结束,每次请求存在唯一标识Trace_id。并且Trace上还包括应用信息、微服务节点信息等。
根因定位:当发生异常时,很多异常是由于互相影响造成的异常,找到多个微服务中的根因异常微服务的过程称为根因定位。
随着微服务的兴起,越来越多的公司使用通过微服务构建的应用程序作为任务的主要承载方式。在任务越来越复杂的情况下,涉及的微服务也变得越来越多,通常一笔任务交易在系统中可能会经过数百个微服务,使得任务链路变的越来越长。当某个微服务发生故障时,其对应的上游、下游也会发生异常。因此,为了更快的发现线上问题,监测系统通常需要针对多个微服务部署监测,检测各个微服务节点的时序数据,当线上监测发现任务指标存在异常时,通常需要人工检查各个微服务是否正常来逐个排查,故障发生时的同一时刻,会出现大量的不同微服务告警,需要我们耗费大量的人力时间去定位根因。
基于此,本申请实施例提出一种基于链路对比的根因定位方法,通过对比正常的任务场景的链路和异常的任务场景的链路,快速判断异常节点,帮助任务人员定位根因,提高定位时间和减少故障恢复时间。
在本说明书中,提供了一种故障检测方法,本说明书同时涉及一种故障检测装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种故障检测方法的场景示意图。
图1中包括微服务节点集100和故障检测系统102,其中,微服务节点集可以理解为微服务系统,整个微服务系统中可包括多个服务节点,在完成一次请求调用时,会经过多个服务节点完成,为了便于理解,图1中微服务节点集100中,以节点A、节点B、节点C、节点D、节点E为例进行介绍;故障检测系统102可以理解为支持查找微服务系统中的故障节点的系统,实际应用中,该故障检测系统可以与微服务节点集是相互独立的,也可以是微服务系统中的一部分,本实施例对此不作具体限定。
实际应用中,故障检测系统102响应于故障检测指令,在微服务节点集中返回的故障节点集中选择一个待处理告警节点,并获取到该待处理告警节点的告警信息;并根据该告警信息确定该节点所在的目标链路的链路标识,比如,待处理告警节点为图1中的节点A,所在的目标链路1的链路标识为Trace ID=1;进一步地,根据该链路标识在微服务节点集100中获取第一调用关系集,需要说明的是,第一调用关系集为当前目标链路1中各个链路节点之间的当前调用关系,由于当前链路出现了故障告警,当前调用关系则为链路异常时的节点调用关系;更进一步地,根据该链路标识还可在微服务节点集100中获取第二调用关系集,需要说明的是,第二调用关系集可理解为该链路标识Trace ID=1对应的链路在节点调用正常时的各个链路节点之间的调用关系;因此,在故障检测系统102获取到第一调用关系集和第二调用关系集之后,通过比对,可准确地确定出故障节点集,提高了故障检测根因定位的效率。
参见图2,图2示出了根据本说明书一个实施例提供的一种故障检测方法的流程图,具体包括以下步骤。
步骤202:响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息。
其中,待处理告警节点可以理解为微服务系统中各个微服务节点执行告警的节点;告警信息可以理解为告警节点报告告警内容的信息,包括但不限定于当前告警节点所调用的应用程序标识、告警节点的日志地址、告警时间、与告警相关的场景要素等等。
实际应用中,执行主体响应于故障检测指令确定待处理告警节点,并获取到该待处理告警节点的告警信息,需要说明的是,微服务系统中的告警节点并非一定处理故障状态,也可能是由于与之关联的其他节点出现异常,导致的该告警节点报警,本实施例对此不作任何限定。
进一步地,所述确定待处理告警节点,包括:
接收所述微服务节点集中各个微服务节点的监测信息;
在确定所述微服务节点集发生微服务告警的情况下,基于所述监测信息在所述各个微服务节点中确定告警节点集合;
基于所述告警节点集合,确定待处理告警节点。
实际应用中,为了更快地发现线上问题,监测系统通常需要针对多个微服务节点部署监测,检测各个微服务节点的时序数据,判断各个节点的任务指标是否存在异常;具体的,执行主体可接收到微服务节点集中各个微服务节点的监测信息,并在确定当前有微服务节点发生微服务告警的情况下,可根据监测信息确定出告警节点集合,并在该告警节点集合中确定出待处理告警节点;需要说明的是,告警节点集合中的任意一个告警节点,都可作为本实施例中的待处理告警节点执行后续的步骤,本实施例对此不作限定。
步骤204:基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识。
其中,目标链路可以理解为待处理告警节点参与调用或被调用的节点链路。
实际应用中,执行主体在获取到待处理告警节点的告警信息之后,需要获取到该待处理告警节点所在的目标链路的链路标识,需要说明的是,该待处理告警节点所在的目标链路可为多条,在微服务节点集中各个节点之间的调用次数可能有多次。
进一步地,执行主体可对每一条待处理告警节点所在的链路进行链路比对,确定当前引起链路异常的故障节点;具体的,所述基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识,包括:
基于所述告警信息,查找所述待处理告警节点所在的至少一个初始链路;
在所述至少一个初始链路中确定目标链路,并获取所述目标链路的链路标识。
实际应用中,执行主体可待处理告警节点的告警信息,查找待处理告警节点所在的至少一个初始链路,并从多条初始链路中确定出一条目标链路,且获取到该目标链路对应的链路标识。
具体实施时,所述基于所述告警信息,查找所述待处理告警节点所在的至少一个初始链路,包括:
基于所述告警信息中的日志地址,确定所述待处理告警节点的日志数据;
根据所述日志数据,查找所述待处理告警节点所在的至少一个初始链路。
实际应用中,执行主体可根据告警信息中的日志地址,获取到待处理告警节点对应的日志数据,并根据日志数据的具体内容,查找到待处理告警节点所在的至少一个初始链路;比如,监测平台反馈的待处理告警节点的告警信息中的日志地址为log1,即可根据该日志地址log1,查找待处理告警节点所在的多条初始链路。
进一步地,由于不同的应用程序处理不同的任务时,会调用不同的服务节点,因此,在执行不同的服务调用时,会涉及到不同的服务节点,为了便于故障检测,可从多条初始链路中确定目标链路进行处理;具体的,所述在所述至少一个初始链路中确定目标链路,包括:
根据所述告警信息中的告警属性信息,在所述至少一个初始链路中确定目标链路,其中,所述告警属性信息包括应用程序标识、任务属性和告警时间中的至少一项。
实际应用中,执行主体还可确定告警信息中的告警属性信息,其中,告警属性信息可以理解为监测平台反馈的关于该告警节点告警的具体信息,包括但不限定于应用程序的相关信息、调用任务的相关信息、告警时间等相关信息;进而,根据告警属性信息,在多条初始链路中确定出目标链路,便于后续对该目标链路中各链路节点之间正常调用关系和异常调用关系进行比对,进而,获得微服务节点集中的故障节点集。
步骤206:基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个链路节点之间的正常调用关系。
其中,微服务节点集可以理解为待处理告警节点所在的微服务系统,该微服务节点集中包括多个微服务节点,各个节点之间可互相完成请求调用处理。
实际应用中,执行主体可根据目标链路的链路标识在微服务节点集中,分别获取到第一调用关系集和第二调用关系集,需要说明的是,第一调用关系集中包括目标链路中各个链路节点之间的当前调用关系,由于本实施例中出现了节点故障,导致的链路调用异常,故当前调用关系可指代链路调用异常情况下的各个链路节点之间的调用关系;第二调用关系集中包括目标链路在正常链路调用中,各个链路节点之间的正常调用关系,其中,该正常链路调用信息可根据该目标链路的历史调用数据确定的。
进一步地,所述基于所述链路标识在微服务节点集中,获取第一调用关系集,包括:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的日志数据;
基于所述告警信息,构建日志查询语句,并基于所述日志查询语句,查询所述各个链路节点对应的日志数据,获得至少一个第一日志数据;
基于所述至少一个第一日志数据,获取第一调用关系集。
实际应用中,执行主体可根据链路标识在微服务节点集中,确定该目标链路对应的各个链路节点,还可获取到该各个链路节点对应的日志数据;并利用待处理告警节点的告警信息组装相应的日志信息,构建日志查询语句,通过日志查询语句查询各个链路节点对应的日志数据,进而获得多个第一日志数据,其中,第一日志数据可以理解为目标链路的各个链路节点对应的日志数据,再从各个链路节点对应的日志数据中,获取到第一调用关系。
更进一步地,各个链路节点的日志数据中均可记录节点之间调用的调用信息,本实施例中还可通过获取到日志中记录的调用信息,来确定第一调用关系集;具体的,所述基于所述至少一个第一日志数据,获取第一调用关系集,包括:
基于所述至少一个第一日志数据,确定所述各个链路节点之间的当前调用信息;
基于所述各个链路节点之间的当前调用信息,提取所述各个链路节点之间的调用关系对,获得第一调用关系集。
实际应用中,根据目标链路上的各个链路节点的第一日志数据,确定各个链路节点之间的当前调用信息,并从当前调用信息中提取出各个链路节点之间的调用关系对,各个调用关系对可组成第一调用关系集。
需要说明的是,在提取到各个链路节点之间的第一日志数据之后,可按照告警信息中携带的日志提取方式,对各个第一日志数据中的日志内容进行提取,以获得节点调用信息;但在实际应用中,节点调用的次数可不唯一,可能会涉及不同的任务维度,比如交易请求的节点调用、交易支付的节点调用,可能会涉及重复的服务节点,因此,在对日志数据进行提取时,可按照各个维度进行提取并进行映射。
基于此,执行主体在目标链路的各个链路节点调用异常的情况下,获取到各个链路节点之间的调用关系对,比如A->B、B->C,表示节点A调用节点B,节点B调用节点C。
另外,执行主体还可在微服务节点集中,获取到目标链路在正常节点调用情况下,各个链路节点之间的调用关系;具体的,所述基于所述链路标识在微服务节点集中,获取第二调用关系集,包括:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的历史调用数据;
根据所述历史调用数据,确定所述目标链路中各个链路节点之间正常调用的关系对;
基于所述关系对,获得第二调用关系集。
其中,历史调用数据可以理解为链路节点之间历史的调用数据,包括节点之间正常完成任务调用的数据内容。
实际应用中,执行主体还可根据链路标识在微服务节点集中,确定目标链路对应的各个链路节点,并获取到各个链路节点对应的历史调用数据,从各个历史调用数据中,可确定出各个链路节点之间的正常调用的关系对,提取各个调用的关系对,获得第二调用关系集。
需要说明的是,根据链路标识,可遍历微服务节点集中各个微服务节点,获取到每个微服务节点对应的节点调用数据,进而可确定出目标链路对应的各个链路节点,这里的各个链路节点与上述实施例中描述的各个链路节点可能有所不同,节点调用正常和节点调用异常这两种情况下,链路节点的调用过程可能会不同,可能会由于某一个链路节点无法正常调用,导致出现了节点调用异常的情况,但是,在节点调用异常时,依旧还有能够正常调用的链路节点,基于此,本实施例中可获取各个链路节点之间正常调用的关系对,以确定第二调用关系集。
更进一步地,所述获取所述各个链路节点对应的历史调用数据,包括:
获取所述各个链路节点对应的历史日志数据;
基于所述告警信息,构建所述各个链路节点对应的历史日志查询语句;
根据所述历史日志查询语句,获取所述各个链路节点之间的历史调用数据。
实际应用中,各个链路节点对应的历史调用数据可通过查询链路节点的日志数据获得,具体的,先确定各个链路节点对应的历史日志数据,其中,该历史日志数据中可记录该链路节点调用其他链路节点之间的调用信息等;为了能够准确地获取到调用信息,执行主体根据告警信息,构建针对各个链路节点对应的历史日志查询语句,并利用历史日志查询语句,获取各个链路节点之间的历史调用数据。例如,根据历史调用数据,可确定待处理告警节点所在的目标链路在节点正常调用情况的调用关系对为:A->B、B->C、C->D,表示节点A调用节点B,节点B调用节点C,节点C调用节点D。
基于此,执行主体可获取到链路调用异常和链路调用正常对应的节点调用关系对,便于后续对两种链路调用关系对进行比对,确定微服务节点集中的故障节点。
参见图3,图3示出了本实施例提供的故障检测方法的获取节点调用关系对的示意图。
图3中包括节点A、节点B、节点C、节点D、节点E,各个节点之间的调用关系如图3所示,需要说明的是,图3中同一链路的节点TraceID相同,那么在获取节点调用关系对时,可获取相邻两个节点之间的调用关系,如图3中所示的A->B、A->C、B->D、D->E。需要说明的是,实际应用中的链路节点,可将其分为两大类节点,服务类Service和消息类Msg,其中Service类节点所记录的关键信息:appName(应用)、rpcid(表示链路的调用顺序)、interface(接口)和method(方法);对于Msg节点,我们记录关键信息:appName(应用)、rpcId(调用顺序)、Topic、EventCode和消息类型(发送msgpub或订阅magsub)。
步骤208:基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
实际应用中,执行主体在获取到第一调用关系集和第二调用关系集之后,可从第一调用关系集和第二调用关系集,确定整个微服务节点集中的故障节点集,其中,故障节点集可以理解为至少一个故障节点组成的集合,且故障节点可为导致待处理告警节点进行告警的节点。
进一步地,本实施例中还可将两个调用关系集中的关系对进行比对,以确定故障节点集;具体的,所述基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集,包括:
比对所述第一调用关系集和所述第二调用关系集,确定目标调用关系集;
基于所述目标调用关系集中的微服务节点,确定故障节点集。
其中,目标调用关系集可以理解为两个调用关系集中相差异的调用关系对。
实际应用中,比对第一调用关系集和第二调用关系集,获得调用关系对差异的集合,进而,可将相差异的调用关系对对应的微服务节点,确定为故障节点集。沿用上例,第一调用关系集中包括A->B、B->C,第二调用关系集中包括A->B、B->C、C->D;经比对,差异调用关系对为C->D,那么可确定故障节点集中包括,微服务节点C和微服务节点D。
需要说明的是,本实施例中通过对两个集合中的关系对进行比对,获得差异关系对;除此之外,还可通过对两个集合中的节点数量进行统计,或者对节点调用链进行分析,进而,确定故障节点集。
此外,为了提高微服务节点故障的检测效率,可从故障节点集中先筛选出预设数量的故障节点,便于后续人员及时对故障节点进行恢复处理;具体的,所述确定所述微服务节点集中的故障节点集之后,还包括:
对所述故障节点集中的各个微服务节点进行排序,获得节点列表;
基于预设数量阈值在所述节点列表中进行筛选,确定目标故障节点。
实际应用中,执行主体还可对故障节点集中的各个微服务节点进行排序,排序的方式本实施例不作限定,包括但不限定于按照微服务节点中所记录的rpcid(表示链路的调用顺序)进行排序,进而,排序后的各个微服务节点可构成节点列表,再从该节点列表中进行筛选,确定出预设数量阈值的微服务节点,作为目标故障节点。例如,可在节点列表中,取TOP2作为异常的故障节点输出。
综上,本申请实施例提供的故障检测方法,能够自动化采集正常、异常的任务场景的目标链路对应的链路节点之间的调用关系对,将两个链路关系对的集合进行对比,自动化获取得到链路的异常节点,克服了需要大量专家经验的问题,全流程自动化采集、分析、对比分析、输出结果。
下述结合附图4,图4示出了本说明书一个实施例提供的一种故障检测方法的处理过程流程图,具体包括以下步骤。
需要说明的是,该故障检测方法所应用的执行主体,可对微服务系统中各个微服务节点发生异常情况的故障检测。
步骤402:监测平台监测微服务系统,获取微服务系统中的告警节点,作为故障检测的输入。
步骤404:故障检测的执行主体可提取告警信息。
具体的,执行主体可根据告警信息获取关键信息,先提取出告警信息中的监测地址monitor_url、告警要素{D1=d1,D2=d2,D3=d3}、告警时间alarmTime、应用名appName1、日志地址log1。如图4中所示,告警信息可以包括但不限定于A.应用名、B.日志地址、C.告警要素、D.结果列、E.日志切分方式等。
步骤406:执行主体根据提取到的告警信息,获取正常、异常链路标识。
具体的,执行主体可根据告警信息组装日志信息:应用appName1+日志地址log1+告警要素(d1 and d2 and d3 and w1 and w2)+告警时间alarmTime,进而构建日志查询语句,查询正常、异常链路标识。比如,正常链路标识:2022*****01;异常链路标识:2022*****02。
需要说明的是,还可根据日志数据中记录的结果列,确定调用的链路是正常还是异常的。
步骤408:执行主体根据链路标识,在微服务系统中获取到各个链路对应的链路调用信息。
比如,正常调用链路:A->B->C->D;异常调用链路:A->B->C。
步骤410:执行主体遍历两个链路,获取两组关系对的集合。
比如,正常调用链路关系对集合:A->B、B->C、C->D;异常调用链路关系对集合:A->B、B->C。
步骤412:对比两组关系对集合,获得差异关系对。
比如,差异关系对:C->D。
步骤414:对差异关系对中的异常节点进行排序。
比如,按照调用顺序排序,应该为C-D。
步骤416:输出根因节点。
具体的,可将节点C作为故障节点输出,也可将C和D均作为故障节点输出,本实施例对此不作限定。
本实施例提供的故障检测方法,通过对比正常的任务场景的链路和异常的任务场景的链路中各个链路节点之间的调用关系,以明确故障节点的具体定位,快速判断异常节点,提高根因定位时间。
与上述方法实施例相对应,本说明书还提供了故障检测装置实施例,图5示出了本说明书一个实施例提供的一种故障检测装置的结构示意图。如图5所示,该装置包括:
信息获取模块502,被配置为响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;
链路确定模块504,被配置为基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;
关系集获取模块506,被配置为基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个历史链路节点之间的正常调用关系;
节点确定模块508,被配置为基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
可选地,所述链路确定模块504,进一步被配置为:
基于所述告警信息,查找所述待处理告警节点所在的至少一个初始链路;
在所述至少一个初始链路中确定目标链路,并获取所述目标链路的链路标识。
可选地,所述链路确定模块504,进一步被配置为:
基于所述告警信息中的日志地址,确定所述待处理告警节点的日志数据;
根据所述日志数据,查找所述待处理告警节点所在的至少一个初始链路。
可选地,所述链路确定模块504,进一步被配置为:
根据所述告警信息中的告警属性信息,在所述至少一个初始链路中确定目标链路,其中,所述告警属性信息包括应用程序标识、任务属性和告警时间中的至少一项。
可选地,所述关系集获取模块506,进一步被配置为:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的日志数据;
基于所述告警信息,构建日志查询语句,并基于所述日志查询语句,查询所述各个链路节点对应的日志数据,获得至少一个第一日志数据;
基于所述至少一个第一日志数据,获取第一调用关系集。
可选地,所述关系集获取模块506,进一步被配置为:
基于所述至少一个第一日志数据,确定所述各个链路节点之间的当前调用信息;
基于所述各个链路节点之间的当前调用信息,提取所述各个链路节点之间的调用关系对,获得第一调用关系集。
可选地,所述关系集获取模块506,进一步被配置为:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的历史调用数据;
根据所述历史调用数据,确定所述目标链路中各个链路节点之间正常调用的关系对;
基于所述关系对,获得第二调用关系集。
可选地,所述关系集获取模块506,进一步被配置为:
获取所述各个链路节点对应的历史日志数据;
基于所述告警信息,构建所述各个链路节点对应的历史日志查询语句;
根据所述历史日志查询语句,获取所述各个链路节点之间的历史调用数据。
可选地,所述信息获取模块502,进一步被配置为:
接收所述微服务节点集中各个微服务节点的监测信息;
在确定所述微服务节点集发生微服务告警的情况下,基于所述监测信息在所述各个微服务节点中确定告警节点集合;
基于所述告警节点集合,确定待处理告警节点。
可选地,所述节点确定模块508,进一步被配置为:
比对所述第一调用关系集和所述第二调用关系集,确定目标调用关系集;
基于所述目标调用关系集中的微服务节点,确定故障节点集。
可选地,所述装置,还包括:
节点筛选模块,被配置为对所述故障节点集中的各个微服务节点进行排序,获得节点列表;
基于预设数量阈值在所述节点列表中进行筛选,确定目标故障节点。
本申请实施例提供的故障检测装置,通过获取待处理告警节点的告警信息,确定该待处理告警节点所在的目标链路的链路标识,以便于根据该链路标识在微服务节点集中,获取目标链路中各个链路节点之间当前异常的调用关系,即第一调用关系集,以及根据目标链路的历史调用数据获取各个链路节点之间的正常调用关系,即第二调用关系集,进而,根据两个调用关系集,确定微服务节点集中的故障节点集;通过该种自动化获取各个链路节点之间的调用关系,可快速地判断微服务节点集中出现链路故障的节点,减少根因定位的时间,提升微服务系统故障恢复的效率。
上述为本实施例的一种故障检测装置的示意性方案。需要说明的是,该故障检测装置的技术方案与上述的故障检测方法的技术方案属于同一构思,故障检测装置的技术方案未详细描述的细节内容,均可以参见上述故障检测方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述故障检测方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的故障检测方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述故障检测方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述故障检测方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的故障检测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述故障检测方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述故障检测方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的故障检测方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述故障检测方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种故障检测方法,包括:
响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;
基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;
基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个链路节点之间的正常调用关系;
基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
2.根据权利要求1所述的方法,所述基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识,包括:
基于所述告警信息,查找所述待处理告警节点所在的至少一个初始链路;
在所述至少一个初始链路中确定目标链路,并获取所述目标链路的链路标识。
3.根据权利要求2所述的方法,所述基于所述告警信息,查找所述待处理告警节点所在的至少一个初始链路,包括:
基于所述告警信息中的日志地址,确定所述待处理告警节点的日志数据;
根据所述日志数据,查找所述待处理告警节点所在的至少一个初始链路。
4.根据权利要求2所述的方法,所述在所述至少一个初始链路中确定目标链路,包括:
根据所述告警信息中的告警属性信息,在所述至少一个初始链路中确定目标链路,其中,所述告警属性信息包括应用程序标识、任务属性和告警时间中的至少一项。
5.根据权利要求1所述的方法,所述基于所述链路标识在微服务节点集中,获取第一调用关系集,包括:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的日志数据;
基于所述告警信息,构建日志查询语句,并基于所述日志查询语句,查询所述各个链路节点对应的日志数据,获得至少一个第一日志数据;
基于所述至少一个第一日志数据,获取第一调用关系集。
6.根据权利要求5所述的方法,所述基于所述至少一个第一日志数据,获取第一调用关系集,包括:
基于所述至少一个第一日志数据,确定所述各个链路节点之间的当前调用信息;
基于所述各个链路节点之间的当前调用信息,提取所述各个链路节点之间的调用关系对,获得第一调用关系集。
7.根据权利要求1-6任意一项所述的方法,所述基于所述链路标识在微服务节点集中,获取第二调用关系集,包括:
基于所述链路标识在微服务节点集中,确定所述目标链路对应的各个链路节点;
获取所述各个链路节点对应的历史调用数据;
根据所述历史调用数据,确定所述目标链路中各个链路节点之间正常调用的关系对;
基于所述关系对,获得第二调用关系集。
8.根据权利要求7所述的方法,所述获取所述各个链路节点对应的历史调用数据,包括:
获取所述各个链路节点对应的历史日志数据;
基于所述告警信息,构建所述各个链路节点对应的历史日志查询语句;
根据所述历史日志查询语句,获取所述各个链路节点之间的历史调用数据。
9.根据权利要求1所述的方法,所述确定待处理告警节点,包括:
接收所述微服务节点集中各个微服务节点的监测信息;
在确定所述微服务节点集发生微服务告警的情况下,基于所述监测信息在所述各个微服务节点中确定告警节点集合;
基于所述告警节点集合,确定待处理告警节点。
10.根据权利要求1所述的方法,所述基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集,包括:
比对所述第一调用关系集和所述第二调用关系集,确定目标调用关系集;
基于所述目标调用关系集中的微服务节点,确定故障节点集。
11.根据权利要求1所述的方法,所述确定所述微服务节点集中的故障节点集之后,还包括:
对所述故障节点集中的各个微服务节点进行排序,获得节点列表;
基于预设数量阈值在所述节点列表中进行筛选,确定目标故障节点。
12.一种故障检测装置,包括:
信息获取模块,被配置为响应于故障检测指令确定待处理告警节点,并获取所述待处理告警节点的告警信息;
链路确定模块,被配置为基于所述告警信息,确定所述待处理告警节点所在的目标链路的链路标识;
关系集获取模块,被配置为基于所述链路标识在微服务节点集中,分别获取第一调用关系集和第二调用关系集,其中,所述第一调用关系集包括各个链路节点之间的当前调用关系,所述第二调用关系集包括基于所述目标链路的历史调用数据,确定的各个历史链路节点之间的正常调用关系;
节点确定模块,被配置为基于所述第一调用关系集和所述第二调用关系集,确定所述微服务节点集中的故障节点集。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述故障检测方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述故障检测方法的步骤。
CN202310155729.5A 2023-02-22 2023-02-22 故障检测方法以及装置 Pending CN116149877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310155729.5A CN116149877A (zh) 2023-02-22 2023-02-22 故障检测方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310155729.5A CN116149877A (zh) 2023-02-22 2023-02-22 故障检测方法以及装置

Publications (1)

Publication Number Publication Date
CN116149877A true CN116149877A (zh) 2023-05-23

Family

ID=86373275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310155729.5A Pending CN116149877A (zh) 2023-02-22 2023-02-22 故障检测方法以及装置

Country Status (1)

Country Link
CN (1) CN116149877A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061334A (zh) * 2023-09-19 2023-11-14 北京优特捷信息技术有限公司 一种链路告警处理方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061334A (zh) * 2023-09-19 2023-11-14 北京优特捷信息技术有限公司 一种链路告警处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107124289B (zh) 网络日志时间对齐方法、装置及主机
CN109981349A (zh) 调用链信息查询方法以及设备
CN113254254A (zh) 系统故障的根因定位方法、装置、存储介质及电子装置
JP6079243B2 (ja) 障害分析支援装置、障害分析支援方法、及びプログラム
CN113596078B (zh) 业务问题定位方法及装置
CN116149877A (zh) 故障检测方法以及装置
CN116523457A (zh) 基于业务流程的工作流处理方法、装置、设备及存储介质
CN112272106A (zh) 一种多站点数据同步异常告警方法、装置、设备、产品
CN107871055B (zh) 一种数据分析方法和装置
CN117827784A (zh) 噪音日志的过滤方法、系统
CN112235128B (zh) 一种交易路径分析方法、装置、服务器及存储介质
CN115705190A (zh) 依赖程度的确定方法及装置
CN117407256A (zh) 一种基于图注意力网络的微服务异常检测方法和装置
CN115037653B (zh) 业务流量监控方法、装置、电子设备和存储介质
CN113094268B (zh) 测试方法、装置、设备和介质
CN114445162A (zh) 反向追溯企业发票系统配置的方法
CN113992664A (zh) 一种集群通信的方法、相关装置及存储介质
CN113014587A (zh) 一种api检测方法、装置、电子设备及存储介质
CN115242613B (zh) 目标节点确定方法以及装置
CN112019390A (zh) 一种网络故障定位方法及相关装置
CN115145982B (zh) 数据处理方法以及装置
US11797388B1 (en) Systems and methods for lossless network restoration and syncing
CN116126683A (zh) 一种应用程序的测试方法、装置、服务器和存储介质
CN115883320B (zh) 网络设备异常分析方法、装置、电子设备及可读存储介质
CN116846741B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240222

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Applicant after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: 51 Belarusian Bashar Road, Singapore, Lai Zanda 1 # 04-08

Applicant before: Alipay laboratories (Singapore) Ltd.

Country or region before: Singapore