掌桥专利:专业的专利平台
掌桥专利
首页

微服务检测方法、装置、设备以及存储介质

文献发布时间:2023-06-19 19:13:14


微服务检测方法、装置、设备以及存储介质

优先权信息

本申请要求于2021年9月30日提交中国专利局、申请号为202111161908.7的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及计算机技术领域,尤其涉及一种微服务检测方法、装置、设备以及存储介质。

背景技术

随着互联网行业的飞速发展,为了易于建设面对大量用户的互联网服务系统,越来越多的系统从单一服务开发模式转变为微服务开发模式,因此微服务架构的应用越来越广泛。微服务架构是一种将单一应用程序划分为多个微服务的架构模式,微服务之间相互协调、互相配合,每个微服务运行在其独立的进程中,且可以独立开发、测试和部署,微服务之间通过轻量级的通信协议(如HTTP)进行交互。采用微服务架构开发的应用系统由多个(数十个甚至上百个)微服务组成,如何对这些微服务进行检测,及时发现系统问题和定位异常原因尤为重要。

相关技术中,检测系统通过指标采集器采集预设时间段内各个微服务器的各项指标,指标如内存、网络、磁盘空间和服务的响应延迟等,并将采集的预设时间段内各个微服务器的各项指标发送到检测系统的服务器,检测系统的服务器根据预设时间段内各个微服务器的各项指标和预设的每个指标对应的报警阈值进行分析,确定有问题时发出报警。

但是,上述方法中无法定位出问题出现的原因,而且由于是对预设时间段内各个微服务器的各项指标分析完后,才可以确定是否存在问题并报警,因此发现问题的及时性不高。

发明内容

本申请提供一种微服务检测方法、装置、设备以及存储介质,以实现及时发现问题和定位出问题出现的原因。

第一方面,本申请提供一种微服务检测方法,包括:

从消息队列中获取日志信息,所述日志信息包括微服务的属性信息;

若所述日志信息为错误级别的日志信息,根据所述日志信息包括的所述微服务的属性信息和预设的M个类型的特征属性,确定与所述日志信息对应的M个特征属性的特征值,所述特征值为所述特征属性相同的日志信息的数量,每一类型特征属性包括至少一种所述属性信息,所述M为正整数;

根据与所述日志信息对应的M个特征属性的特征值和预设的所述M个特征属性的报警阈值,确定导致所述微服务出现异常的目标特征属性;

根据所述目标特征属性发送报警信息和异常原因。

第二方面,本申请提供一种微服务检测装置,包括:

获取模块,用于从消息队列中获取日志信息,所述日志信息包括微服务的属性信息;

第一确定模块,用于在所述日志信息为错误级别的日志信息时,根据所述日志信息包括的所述微服务的属性信息和预设的M个类型的特征属性,确定与所述日志信息对应的M个特征属性的特征值,所述特征值为所述特征属性相同的日志信息的数量,每一类型特征属性包括至少一种所述属性信息,所述M为正整数;

第二确定模块,用于根据与所述日志信息对应的M个特征属性的特征值和预设的所述M个特征属性的报警阈值,确定导致所述微服务出现异常的目标特征属性;

发送模块,用于根据所述目标特征属性发送报警信息和异常原因。

第三方面,本申请提供一种微服务检测设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行第一方面或第一方面各可能的实施方式中任一所述的微服务检测方法。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中任一所述的微服务检测方法。

第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中任一所述的微服务检测方法。

本申请提供的微服务检测方法、装置、设备以及存储介质,通过从消息队列中获取日志信息,该日志信息为错误级别的日志信息时,根据该日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与该日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量,根据与该日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性,根据目标特征属性发送报警信息和异常原因。由于日志信息是实时的日志信息,本申请中对每个实时的日志信息进行实时的处理,可以及时发现异常并报警,从而提高了发现问题的及时性,且日志信息记录了微服务的属性信息,本申请通过对特征属性相同的日志数量进行统计,根据不同特征属性设置不同的报警阈值,从而可以快速定位出导致微服务出现异常的目标特征属性,根据目标特征属性可以获知问题出现的原因,因此可快速定位出问题出现的原因。

附图说明

图1为本申请实施例提供的微服务检测方法的一种应用场景示意图;

图2为本申请实施例提供的一种微服务检测方法的流程图;

图3为本申请实施例提供的一种微服务检测方法的流程图;

图4为本申请实施例提供的一种根据日志聚合算法确定一个特征属性的特征值的流程示意图;

图5为本申请实施例提供的一种归因分析的流程示意图;

图6为本申请实施例提供的一种根据目标特征属性发送报警信息和异常原因的流程示意图;

图7为本申请实施例提供的一种微服务检测装置的结构示意图;

图8为本申请实施例提供的一种微服务检测设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

本申请实施例的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。

1、微服务的属性信息,是指日志信息中记录的和微服务相关的信息,例如,微服务的属性信息可以包括微服务的服务标识(也称为系统编码)、微服务的服务器的IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容等等。

2、特征属性,根据微服务的属性信息划分得到,每一类型特征属性包括至少一种属性信息,以上述1中描述的微服务的属性信息为例,特征属性可以包括四类,第一类型特征属性包括微服务的服务标识和日志信息对应的代码位置,第二类型特征属性包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识,第三类型特征属性包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器的IP地址,第四类型特征属性包括微服务的服务标识、日志信息对应的代码位置和用于匹配日志信息的内容的正则表达式。

3、特征属性的特征值,是指特征属性相同的日志信息的数量,如特征属性为第一类型特征属性,特征属性1为微服务的服务标识1和日志信息对应的代码位置1,则特征属性1的特征值为微服务的服务标识为服务标识1且日志信息对应的代码位置为代码位置1的日志信息的数量。

在微服务架构中,如何对微服务进行检测,及时发现系统问题和定位异常原因尤为重要。相关技术中无法定位出问题出现的原因,而且由于是对预设时间段内各个微服务器的各项指标分析完后,才可以确定是否存在问题并报警,因此发现问题的及时性不高。为解决这一问题,本申请实施例提供一种微服务检测方法、装置、设备以及存储介质,通过从消息队列中获取实时日志信息,并通过该日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与该日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量,根据与该日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性,最后根据目标特征属性发送报警信息和异常原因。由于日志信息是实时的日志信息,本申请中对每个实时的日志信息进行实时的处理,可以及时发现异常并报警,从而提高了发现问题的及时性,且日志信息记录了微服务的属性信息,本申请通过对特征属性相同的日志数量进行统计,根据不同特征属性设置不同的报警阈值,从而可以快速定位出导致微服务出现异常的目标特征属性,根据目标特征属性可以获知问题出现的原因,因此可快速定位出问题出现的原因。

进一步地,本申请提供的微服务检测方法,还可以确定出问题的严重程度,确定报警级别,根据报警级别报警,如发送电话、短信、应用内消息等多级别报警,避免报警繁多,重要报警遗漏的问题。

进一步地,本申请提供的微服务检测方法,针对不同的特征值设置不同的数据库存储时间(也称过期时间),可以检测到短时间内突增的需要报警的日志信息,使得报警更加精确。

接下来,对本申请实施例涉及的应用场景进行示例说明。

本申请实施例提供的微服务检测方法至少可以应用于下述应用场景中,下面结合附图进行说明。

示例性的,图1为本申请实施例提供的微服务检测方法的一种应用场景示意图,如图1所示,图1中涉及的微服务架构中包括客户端6、API网关7和服务器1、服务器2、服务器3、6个微服务和微服务检测装置8,其中,客户端6可以包括移动端和PC端,6个微服务为微服务1-6,微服务1-6分别位于实例1-6,实例1和实例2位于服务器1,实例3和实例4位于服务器2,实例5和实例6位于服务器3,日志收集组件10从各个服务器采集服务器存储的日志信息,并将采集的日志信息发送至日志收集服务器4,日志收集服务器4将接收到的日志信息放入消息队列5。为对微服务进行检测,及时发现系统问题和定位异常原因,本申请实施例提供的微服务检测装置8从消息队列5中获取日志信息,并执行本申请实施例提供的微服务检测方法,根据日志信息进行实时的处理,可以及时发现异常并报警,快速定位出问题出现的原因。

下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2为本申请实施例提供的一种微服务检测方法的流程图,该微服务检测方法可以由微服务检测装置执行,该微服务检测装置可以通过软件和/或硬件的方式实现。如图2所示,本实施例的方法可以包括:

S101、从消息队列中获取日志信息,日志信息包括微服务的属性信息。

具体地,消息队列中存储日志收集服务器通过日志收集组件收集的日志信息,日志信息包括微服务的属性信息,可选的,微服务的属性信息可以包括微服务的服务标识、微服务的服务器的互联网协议IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容中的至少一项。可选的,日志信息还可以包括日志信息的类型,日志信息的类型例如包括正常日志信息、需要注意的日志信息和错误级别的日志信息(即需要报警的日志信息)。

可以理解的是,从消息队列中获取日志信息,一次获取的是一个日志信息。

S102、若日志信息为错误级别的日志信息,根据日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量,每一类型特征属性包括至少一种属性信息,M为正整数。

具体地,在从消息队列中获取到日志信息后,先筛选出错误级别的日志信息,对错误级别的日志信息进行S102-S104的处理。

具体地,每一类型特征属性包括至少一种属性信息,以上述微服务的属性信息为例,可选的,M等于4,特征属性可以包括以下四个类型:

第一类型特征属性:包括微服务的服务标识和日志信息对应的代码位置。

第二类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识。

第三类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器的IP地址。

第四类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和用于匹配日志信息的内容的正则表达式。

其中,可选的,正则表达式可以包括:根据日志信息的内容获取微服务调用下游的微服务的服务器的IP地址。或者,根据日志信息的内容获取微服务调用的错误码。

对错误级别的日志信息,根据日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量。作为一种可实施的方式,根据日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与日志信息对应的M个特征属性的特征值,具体可以包括:

S1021、根据日志信息包括的微服务的属性信息和M个类型的特征属性,确定与日志信息对应的M个特征属性。

其中特征属性类型根据微服务的属性信息设置,可选的,微服务的属性信息包括微服务的服务标识、微服务的服务器的互联网协议IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容中的至少一项。

若微服务的属性信息包括微服务的服务标识、微服务的服务器的互联网协议IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容,则特征属性类型可以包括上述所示的四个类型的特征属性。

以上述四个类型的特征属性为例,例如,日志信息包括的微服务的属性信息例如包括:微服务的服务标识为A、微服务的服务器的互联网协议IP地址为B、微服务的服务器所在的机房标识为C、日志信息对应的代码位置为D以及日志信息的内容为内容一,则根据上述四种特征属性,可确定出与该日志信息对应的4个特征属性,分别是:

第一个特征属性:微服务的服务标识A和日志信息对应的代码位置D。

第二个特征属性:微服务的服务标识A、日志信息对应的代码位置D和微服务的服务器所在的机房标识C。

第三个特征属性:微服务的服务标识A、日志信息对应的代码位置D和微服务的服务器的IP地址B。

第四个特征属性:微服务的服务标识A、日志信息对应的代码位置D和根据用于匹配日志信息的内容的正则表达式和内容一匹配的结果。

其中,第四个特征属性中,可选的,根据用于匹配日志信息的内容的正则表达式对内容一进行匹配的过程例如可以为:根据正则表达式解析日志信息,获取调用下游的微服务的服务器的IP地址。可选的,根据用于匹配日志信息的内容的正则表达式对内容一进行匹配的过程例如还可以为:根据正则表达式解析日志信息,获取微服务调用的错误码。

S1022、针对M个特征属性中的每个特征属性,根据日志聚合算法确定每个特征属性的特征值。

其中,一个特征属性的特征值为特征属性相同的日志信息的数量,例如,以上述确定的四个特征属性为例,针对四个特征属性中的每个特征属性,根据日志聚合算法确定每个特征属性的特征值,最终得到四个特征属性的特征值。以第一个特征属性为例,即统计微服务的服务标识为A且日志信息对应的代码位置为D的当前所有日志信息的数量;以第二个特征属性为例,即统计微服务的服务标识为A、日志信息对应的代码位置为D且微服务的服务器所在的机房标识为C的当前所有日志信息的数量。

作为一种可实施的方式,S1022中根据日志聚合算法确定每个特征属性的特征值,可以为:

若确定数据库中未存储特征属性的特征值,则将特征属性的特征值设置为1,将特征属性和特征属性的特征值的对应关系存储在数据库中,并设置用于存储特征属性和特征属性的特征值的对应关系的时间为第一预设时间。

若确定数据库中已存储特征属性的特征值,则从数据库中获取特征属性的特征值n,并更新数据库中存储的特征属性的特征值为n+1。

其中,第一预设时间例如可以为30s、60s、2分钟等等,本实施例中的数据库例如可以为键-值(Key-Value)数据库,如远程字典服务(Remote Dictionary Server,Redis)数据库。在存储时,特征属性为Key,特征属性的特征值为Value。

进一步地,在一种可实施的方式中,更新数据库中存储的特征属性的特征值为n+1后,还可以包括:

若n大于预设阈值,则设置用于存储特征属性和特征属性的特征值的对应关系的时间为第二预设时间,若n小于或等于预设阈值,则设置用于存储特征属性和特征属性的特征值的对应关系的时间为第三预设时间,第二预设时间大于第一预设时间,第三预设时间大于第二预设时间。

例如,第一预设时间为60s,预设阈值为5,n大于5时,第二预设时间为60*2

S103、根据与日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性。

可选的,在一种可实施的方式中,预设的M个类型的特征属性包括一个第一级特征属性和M-1个第二级特征属性,第一级特征属性包括的属性信息的种类大于第二级特征属性包括的属性信息的种类。

还是以上述4个特征属性为例,即:

第一类型特征属性:包括微服务的服务标识和日志信息对应的代码位置。

第二类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识。

第三类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器的IP地址。

第四类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和用于匹配日志信息的内容的正则表达式。

第一类型特征属性包括2种属性信息,第二类型特征属性、第三类型特征属性和第四类型特征属性均包括3种属性信息,第一类型特征属性即为第一级特征属性,第二类型特征属性、第三类型特征属性和第四类型特征属性为3个第二级特征属性。

相应地,作为一种可实施的方式,S103具体可以包括:

S1031、若第一级特征属性的特征值大于第一级特征属性的报警阈值,则判断第一级特征属性的特征值是否大于第一级特征属性的归因分析阈值。

S1032、若第一级特征属性的特征值大于归因分析阈值,则确定微服务出现异常,根据M-1个第二级特征属性的特征值和M-1个第二级特征属性的报警阈值,确定导致微服务出现异常的目标特征属性。

S1033、若第一级特征属性的特征值小于或等于归因分析阈值,确定目标特征属性为第一级特征属性。

其中,作为一种可实施的方式,S1032中根据M-1个第二级特征属性的特征值和M-1个第二级特征属性的报警阈值,确定导致微服务出现异常的目标特征属性,可以包括:

根据预设的M-1个第二级特征属性的优先级顺序依次进行每个第二级特征属性的特征值和对应的每个第二级特征属性的报警阈值的比较,直至确定出M-1个第二级特征属性中的目标第二级特征属性的特征值大于目标第二级特征属性的报警阈值;

确定目标特征属性为目标第二级特征属性。

具体地,若M为1,S103具体可以为:若与日志信息对应的1个特征属性的特征值大于预设的1个特征属性的报警阈值,确定目标特征属性为该特征属性。

S104、根据目标特征属性发送报警信息和异常原因。

具体地,确定出导致微服务出现异常的目标特征属性后,即可根据目标特征属性发送报警信息和异常原因。

可选的,在一种可实施的方式中,S104具体可以包括:

S1041、根据目标特征属性和预存的特征属性类型与异常原因的对应关系,将与目标特征属性对应的异常原因确定为异常原因。

S1042、发送报警信息和异常原因。

作为一种可实施的方式,S1042中发送报警信息和异常原因,具体可以为:

根据目标特征属性的特征值和预设的与目标特征属性对应的N个等级的报警阈值,确定报警级别,N为正整数,发送与报警级别对应的报警信息和异常原因。

例如N为3,即有3个报警级别,对应有3个等级的报警阈值,不同的特征属性所对应的报警阈值不同,以一个特征属性为例,根据目标特征属性的特征值和预设的与目标特征属性对应的N个等级的报警阈值,确定报警级别,具体可以是先判断目标特征属性的特征值是否大于第一个等级的报警阈值,若是,则确定报警级别为第一级别,若否,接着判断目标特征属性的特征值是否大于第二个等级的报警阈值,若是,则确定报警级别为第二级别,若否,接着判断目标特征属性的特征值是否大于第三个等级的报警阈值,若是,则确定报警级别为第三级别。每个级别的报警方式可以不同,例如,第一级别、第二级别和第三级别的报警方式分别是电话报警、短信报警和应用内消息报警。本实施例中,通过根据目标特征属性的特征值和预设的与目标特征属性对应的N个等级的报警阈值,确定报警级别,根据报警级别报警,如通过电话、短信、应用内消息等多级别报警,避免报警繁多,重要报警遗漏的问题。

本实施例提供的微服务检测方法,通过从消息队列中获取日志信息,该日志信息为错误级别的日志信息时,根据该日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与该日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量,根据与该日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性,根据目标特征属性发送报警信息和异常原因。由于日志信息是实时的日志信息,本申请中对每个实时的日志信息进行实时的处理,可以及时发现异常并报警,从而提高了发现问题的及时性,且日志信息记录了微服务的属性信息,本申请通过对特征属性相同的日志数量进行统计,根据不同特征属性设置不同的报警阈值,从而可以快速定位出导致微服务出现异常的目标特征属性,根据目标特征属性可以获知问题出现的原因,因此可快速定位出问题出现的原因。

下面结合一个具体的实施例,对本申请提供的微服务检测方法进行详细说明。

图3为本申请实施例提供的一种微服务检测方法的流程图,该微服务检测方法可以由微服务检测装置执行,该微服务检测装置可以通过软件和/或硬件的方式实现。如图3所示,本实施例的方法可以包括:

S201、从消息队列中获取日志信息,日志信息包括微服务的属性信息。

具体地,消息队列中存储日志收集服务器通过日志收集组件收集的日志信息,日志信息包括微服务的属性信息,本实施例中以微服务的属性信息包括微服务的服务标识、微服务的服务器的IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容以及日志信息的类型,日志信息的类型例如包括正常日志信息、需要注意的日志信息和错误级别的日志信息(即需要报警的日志信息)。

S202、根据日志信息的格式进行解析和反序列化,得到日志信息包括的微服务的属性信息和日志信息的类型。

具体来说,日志信息按照预设的格式存储在消息队列中,从消息队列中获取到日志信息后,根据日志信息的格式进行解析和反序列化,即可得到日志信息包括的微服务的属性信息和日志信息的类型。

S203、若日志信息为错误级别的日志信息,根据日志信息包括的微服务的属性信息和预设的4个特征属性类型,确定与日志信息对应的4个特征属性。

其中,预设的4个特征属性类型可以为:

第一类型特征属性:包括微服务的服务标识和日志信息对应的代码位置。

第二类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识。

第三类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和微服务的服务器的IP地址。

第四类型特征属性:包括微服务的服务标识、日志信息对应的代码位置和用于匹配日志信息的内容的正则表达式。

例如,日志信息包括的微服务的属性信息例如包括:微服务的服务标识为A、微服务的服务器的互联网协议IP地址为B、微服务的服务器所在的机房标识为C、日志信息对应的代码位置为D以及日志信息的内容为内容一,则根据上述四种特征属性,可确定出与该日志信息对应的4个特征属性,分别是:

第一个特征属性:微服务的服务标识A和日志信息对应的代码位置D。

第二个特征属性:微服务的服务标识A、日志信息对应的代码位置D和微服务的服务器所在的机房标识C。

第三个特征属性:微服务的服务标识A、日志信息对应的代码位置D和微服务的服务器的IP地址B。

第四个特征属性:微服务的服务标识A、日志信息对应的代码位置D和根据用于匹配日志信息的内容的正则表达式和内容一匹配的结果。

其中,第四个特征属性中,可选的,根据用于匹配日志信息的内容的正则表达式对内容一进行匹配的过程例如可以为:根据正则表达式解析日志信息,获取调用下游的微服务的服务器的IP地址。可选的,根据用于匹配日志信息的内容的正则表达式对内容一进行匹配的过程例如还可以为:根据正则表达式解析日志信息,获取微服务调用的错误码。

需要说明的是,若日志信息中未包括上述所有的微服务的属性信息,则M小于4,例如日志信息中未包括微服务的服务器所在的机房标识,则确定的该日志信息的特征属性中没有第二种特征属性。

S204、存储与日志信息对应的4个特征属性。

具体地,可以将与日志信息对应的4个特征属性存储在数据库中,例如存储在Redis数据库中,在存储时,特征属性为Key,特征属性的特征值为Value。

S205、针对4个特征属性中的每个特征属性,根据日志聚合算法确定每个特征属性的特征值。

其中,一个特征属性的特征值为特征属性相同的日志信息的数量,例如,以上述确定的四个特征属性为例,针对四个特征属性中的每个特征属性,根据日志聚合算法确定每个特征属性的特征值,最终得到四个特征属性的特征值。以第一个特征属性为例,即统计微服务的服务标识为A和日志信息对应的代码位置为D的当前所有日志信息的数量。

作为一种可实施的方式,图4为本申请实施例提供的一种根据日志聚合算法确定一个特征属性的特征值的流程示意图,如图4所示,确定一个特征属性(如Fn)的特征值的过程具体包括:

S301、根据特征属性Fn生成数据库的存储键。

即在一个键(Key)-值(Value)对应关系中,特征属性Fn为键,特征属性Fn的特征值为值。

S302、查询数据库中是否存储特征属性Fn的特征值,即Fn的特征值是否存在。

若否,则执行S303,若是,则执行S304。

S303、将特征属性Fn的特征值设置为1,将特征属性Fn和特征属性Fn的特征值的对应关系存储在数据库中,并设置用于存储该对应关系的时间为第一预设时间。

其中,例如第一预设时间为60s。在第一预设时间到达时,将特征属性Fn和特征属性Fn的特征值的对应关系从数据库中删除,特征值统计结束,此时数据库中存储的特征属性Fn的特征值即为最终统计得到的Fn的特征值,否则继续存储特征属性Fn和特征属性Fn的特征值的对应关系,继续进行特征值统计。

S304、从数据库中获取特征属性Fn的特征值n,并更新数据库中存储的特征属性Fn的特征值为n+1。

S305、判断n是否大于预设阈值。

若是,执行S306,若否,执行S307。

S306、设置用于存储特征属性Fn和特征属性Fn的特征值的对应关系的时间为第二预设时间。

S307、设置用于存储特征属性Fn和特征属性Fn的特征值的对应关系的时间为第三预设时间。

其中,第二预设时间大于第一预设时间,第三预设时间大于第二预设时间。例如,若第一预设时间为60s,预设阈值为5,n大于5时,第二预设时间为60*2

在第二预设时间或第三预设时间到达时,将特征属性Fn和特征属性Fn的特征值的对应关系从数据库中删除,特征值统计结束,此时数据库中存储的特征属性Fn的特征值即为最终统计得到的Fn的特征值,否则继续存储特征属性Fn和特征属性Fn的特征值的对应关系,继续进行特征值统计。

S206、根据与日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性。

例如,本实施例中,第一类型特征属性即为第一级特征属性,第二类型特征属性、第三类型特征属性和第四类型特征属性为3个第二级特征属性。

S206的一种具体的实施方式请参见如下图5。

S207、根据目标特征属性发送报警信息和异常原因。

具体地,确定出导致微服务出现异常的目标特征属性后,即可根据目标特征属性发送报警信息和异常原因。

作为一种可实施的方式,根据目标特征属性发送报警信息和异常原因,具体可以为:

根据目标特征属性和预存的特征属性类型与异常原因的对应关系,将与目标特征属性对应的异常原因确定为异常原因。

根据目标特征属性的特征值和预设的与目标特征属性对应的N个等级的报警阈值,确定报警级别,N为正整数,发送与报警级别对应的报警信息和异常原因。

作为一种可实施的方式,图5为本申请实施例提供的一种归因分析的流程示意图,归因分析即为确定异常原因,本实施例中以第一类型特征属性为Fa、Fa的特征值为Va,第二类型特征属性为Fb、Fb的特征值为Vb,第三类型特征属性为Fc、Fc的特征值为Vc,第四类型特征属性为Fd、Fd的特征值为Vd为例进行说明,如图5所示,本实施例的方法具体可以包括:

S401、从数据库中查询特征属性Fa的特征值Va。

S402、判断Va是否大于Fa的报警阈值。

若是,则执行S403,若否,则归因分析结束。

S403、判断Va是否大于Fa的归因分析阈值。

若是,则执行S404,若否,则执行S414。

S404、从数据库中查询特征属性Fd的特征值Vd。

S405、判断Vd/Va是否大于预设的Fd的报警阈值。

若是,则执行S406,若否,则执行S407。

S406、归因完成,确定特征属性Fd为目标特征属性。

具体地,归因即为确定异常原因,可以根据正则表达式匹配结果确定异常原因,例如,匹配结果是RPC调用的下游服务IP,则导致微服务出现异常的原因是下游服务对应服务器IP地址出现异常,需要下游服务进行迁移机器等操作。

S407、从数据库中查询特征属性Fc的特征值Vc。

S408、判断Vc/Va是否大于预设的Fc的报警阈值。

若是,则执行S409,若否,则执行S410。

S409、归因完成,确定特征属性Fc为目标特征属性。

具体地,可以根据Fc即微服务的服务标识、日志信息对应的代码位置和微服务的服务器的IP地址确定异常原因,例如该IP地址所在的服务器出现异常,需要微服务进行迁移实例IP地址等操作。

S410、从数据库中查询特征属性Fb的特征值Vb。

S411、判断Vb/Va是否大于预设的Fb的报警阈值。

若是,则执行S412,若否,则执行S413。

S412、归因完成,确定特征属性Fb为目标特征属性。

具体地,可以根据微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识确定异常原因,例如该机房标识对应的机房出现异常,需要该微服务将流量切换到另一个正常的机房。

S413、归因完成,确定特征属性Fa为目标特征属性。

具体地,可以根据微服务的服务标识和日志信息对应的代码位置确定异常原因,例如该微服务存在业务逻辑问题,需要修复对应的业务逻辑Bug。

S414、归因完成,确定特征属性Fa为目标特征属性。

具体地,可以根据微服务的服务标识和日志信息对应的代码位置确定异常原因,例如该微服务存在业务逻辑问题,需要修复对应的业务逻辑Bug。

本实施例中,根据不同特征属性设置不同的报警阈值,进行归因分析,可以快速确定出异常原因,比如系统业务异常、微服务的服务器所在的机房异常、微服务的服务器的IP地址异常、下游服务指定IP地址异常等。

下面以N为3为例,图6为本申请实施例提供的一种根据目标特征属性发送报警信息和异常原因的流程示意图,本实施例中以第一级别、第二级别和第三级别的报警方式分别是电话报警、短信报警和应用内消息报警为例进行说明,如图6所示,具体可以包括:

S501、从数据库中查询目标特征属性Fn的特征值Vn。

其中,可以理解的是,目标特征属性Fn可以是Fa、Fb、Fc或Fd。

S502、判断Vn是否大于预设的Fn的电话报警阈值。

若是,则执行S503,若否,则执行S504。

S503、应用内发送报警信息和异常原因,并通过电话报警。

例如,给值班人员打电话报警。

S504、判断Vn是否大于预设的Fn的短信报警阈值。

若是,则执行S505,若否,则执行S506。

S505、应用内发送报警信息和异常原因,并通过短信报警。

例如,给值班人员发送短信报警。

S506、判断Vn是否大于预设的Fn的应用报警阈值。

若是,则执行S507,若否,则无需报警。

S507、应用内发送报警信息和异常原因。

本实施例中,通过根据报警级别报警,如通过电话、短信、应用内消息等多级别报警,避免报警繁多,重要报警遗漏的问题。

以下为本申请装置实施例,可以用于执行本申请上述方法实施例。对于本申请装置实施例中未披露的细节,可参考本申请上述方法实施例。

图7为本申请实施例提供的一种微服务检测装置的结构示意图,如图7所示,本实施例的装置可以包括:获取模块11、第一确定模块12、第二确定模块13和发送模块14,其中,

获取模块11用于从消息队列中获取日志信息,日志信息包括微服务的属性信息;

第一确定模块12用于在日志信息为错误级别的日志信息时,根据日志信息包括的微服务的属性信息和预设的M个类型的特征属性,确定与日志信息对应的M个特征属性的特征值,特征值为特征属性相同的日志信息的数量,每一类型特征属性包括至少一种属性信息,M为正整数;

第二确定模块13用于根据与日志信息对应的M个特征属性的特征值和预设的M个特征属性的报警阈值,确定导致微服务出现异常的目标特征属性;

发送模块14用于根据目标特征属性发送报警信息和异常原因。

可选的,第一确定模块12用于根据日志信息包括的微服务的属性信息和M个类型的特征属性,确定与日志信息对应的M个特征属性;针对M个特征属性中的每个特征属性,根据日志聚合算法确定每个特征属性的特征值。

可选的,第一确定模块12具体用于:

若确定数据库中未存储与特征属性的特征值,则将特征属性的特征值设置为1,将特征属性和特征属性的特征值的对应关系存储在数据库中,并设置用于存储对应关系的时间为第一预设时间;

若确定数据库中已存储与特征属性的特征值,则从数据库中获取特征属性的特征值n,并更新数据库中存储的特征属性的特征值为n+1。

可选的,第一确定模块12还用于:

若n大于预设阈值,则设置用于存储对应关系的时间为第二预设时间,若n小于或等于预设阈值,则设置用于存储对应关系的时间为第三预设时间,第二预设时间大于第一预设时间,第三预设时间大于第二预设时间。

可选的,预设的M个类型的特征属性包括一个第一级特征属性和M-1个第二级特征属性,第一级特征属性包括的属性信息的种类大于第二级特征属性包括的属性信息的种类。

可选的,第二确定模块13用于:若第一级特征属性的特征值大于第一级特征属性的报警阈值,则判断第一级特征属性的特征值是否大于第一级特征属性的归因分析阈值;

若第一级特征属性的特征值大于归因分析阈值,则确定微服务出现异常,根据M-1个第二级特征属性的特征值和M-1个第二级特征属性的报警阈值,确定导致微服务出现异常的目标特征属性;

若第一级特征属性的特征值小于或等于归因分析阈值,确定目标特征属性为第一级特征属性。

可选的,第二确定模块13具体用于:根据预设的M-1个第二级特征属性的优先级顺序依次进行每个第二级特征属性的特征值和对应的每个第二级特征属性的报警阈值的比较,直至确定出M-1个第二级特征属性中的目标第二级特征属性的特征值大于目标第二级特征属性的报警阈值;

确定目标特征属性为目标第二级特征属性。

可选的,微服务的属性信息包括微服务的服务标识、微服务的服务器的互联网协议IP地址、微服务的服务器所在的机房标识、日志信息对应的代码位置和日志信息的内容中的至少一项。

可选的,M等于4,

第一类型特征属性包括:微服务的服务标识和日志信息对应的代码位置;

第一类型特征属性包括:微服务的服务标识、日志信息对应的代码位置和微服务的服务器所在的机房标识;

第三类型特征属性包括:微服务的服务标识、日志信息对应的代码位置和微服务的服务器的互联网协议IP地址;

第四类型特征属性包括:微服务的服务标识、日志信息对应的代码位置和用于匹配日志信息的内容的正则表达式。

可选的,正则表达式包括:根据日志信息的内容获取微服务调用下游的微服务的服务器的IP地址;或者,

根据日志信息的内容获取微服务调用的错误码。

可选的,发送模块14用于根据目标特征属性和预存的特征属性类型与异常原因的对应关系,将与目标特征属性对应的异常原因确定为异常原因;

发送报警信息和异常原因。

可选的,发送模块14具体用于根据目标特征属性的特征值和预设的与目标特征属性对应的N个等级的报警阈值,确定报警级别,N为正整数;

发送与报警级别对应的报警信息和异常原因。

本申请实施例提供的装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。

图8为本申请实施例提供的一种微服务检测设备的结构示意图,如图8所示,本实施例的微服务检测设备可以包括处理器21和存储器22,

其中,存储器22用于存储处理器21的可执行指令。

处理器21配置为经由执行可执行指令来执行上述方法实施例中的微服务检测方法。

可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。

当存储器22是独立于处理器21之外的器件时,本实施例的电子设备还可以包括:

总线23,用于连接存储器22和处理器21。

可选地,本实施例的电子设备还可以包括:通信接口24,该通信接口24可以通过总线23与处理器21连接。

本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当其在计算机上运行时,使得计算机执行如上述实施例的微服务检测方法。

本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上实施例中的微服务检测方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 微服务管理方法、装置、计算机设备以及存储介质
  • 微服务的双活处理方法、装置及系统、设备、存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
  • 一种存储系统的状态检测方法、装置、设备及存储介质
  • 微服务的检测方法、装置、存储介质及电子设备
  • 微服务故障检测方法、装置、存储介质及计算机设备
技术分类

06120115835505