CN111694721A - 一种微服务的故障监测方法和装置 - Google Patents
一种微服务的故障监测方法和装置 Download PDFInfo
- Publication number
- CN111694721A CN111694721A CN202010542295.0A CN202010542295A CN111694721A CN 111694721 A CN111694721 A CN 111694721A CN 202010542295 A CN202010542295 A CN 202010542295A CN 111694721 A CN111694721 A CN 111694721A
- Authority
- CN
- China
- Prior art keywords
- fault
- log information
- frequent
- item
- micro
- 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
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000002159 abnormal effect Effects 0.000 claims abstract description 49
- 238000000605 extraction Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000012806 monitoring device Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种微服务的故障监测方法和装置,包括:获取输入参数;根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;采用所述多项异常日志信息生成故障项目库;为所述微服务分配对应的权重;根据所述权重和所述故障项目库,生成频繁故障项目集;采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。本发明实施例通过结合微服务的权重来对频繁故障项进行关联监测,避免频繁项关联监测过程占用内存空间大导致故障树构建耗时长的问题,从而可以在电力计量系统发生故障时从日志中快速构建故障树,实现故障定位。
Description
技术领域
本发明涉及故障监测技术领域,尤其涉及一种微服务的故障监测方法和装置。
背景技术
微服务是一个新兴的软件架构,其可以把一个大型的单个应用程序和服务拆分为数十个微服务。微服务应用相比于传统的程序应用,能够更有效地利用计算资源。这是因为它们通过扩展组件来处理性能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
为了保证微服务化系统的正常运行,需要对微服务化系统进行故障监测,以及时发现与定位系统运行过程中产生的故障。
发明内容
本发明提供了一种微服务的故障监测方法和装置,用于解决现有技术无法利用历史日志数据进行故障定位的问题。
本发明提供的一种微服务的故障监测方法,应用于电力计量系统,所述电力计量系统包括多个微服务;所述的方法包括:
获取输入参数;
根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
采用所述多项异常日志信息生成故障项目库;
为所述微服务分配对应的权重;
根据所述权重和所述故障项目库,生成频繁故障项目集;
采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
可选地,所述采用所述多项异常日志信息生成故障项目库的步骤,包括:
从所述多项异常日志信息中分别提取对应的故障发生时间;
获取预设时间范围,所述预设时间范围包括多个时间区间;
采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
采用所述多个时间区间对应的故障项目集生成故障项目库。
可选地,所述根据所述权重和所述故障项目库,生成频繁故障项目集的步骤,包括:
获取所述故障项目库中所述故障项目集的个数和每个所述微服务在所述故障项目集内的故障发生次数;
根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
可选地,所述的方法还包括:
采集多个所述微服务的日志信息;
将所述日志信息传输至所述消息队列,并缓冲所述日志信息。
可选地,所述预设时间范围为多个,所述还包括:
获取多个所述时间范围分别对应的频繁故障项目集之间的关联信息;
根据所述关联信息对多个所述时间范围分别对应的频繁故障项目集进行分类。
本发明提供的一种微服务的故障监测装置,应用于电力计量系统,所述电力计量系统包括多个微服务;所述的装置包括:
输入参数获取模块,用于获取输入参数;
日志信息提取模块,用于根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
故障项目库生成模块,用于采用所述多项异常日志信息生成故障项目库;
权重分配模块,用于为所述微服务分配对应的权重;
频繁故障项目集生成模块,用于根据所述权重和所述故障项目库,生成频繁故障项目集;
构建模块,用于采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
可选地,所述故障项目库生成模块,包括:
故障发生时间提取子模块,用于从所述多项异常日志信息中分别提取对应的故障发生时间;
时间范围获取子模块,用于获取预设时间范围,所述预设时间范围包括多个时间区间;
故障项目集生成子模块,用于采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
故障项目库生成子模块,用于采用所述多个时间区间对应的故障项目集生成故障项目库。
可选地,所述频繁故障项目集生成模块,包括:
获取子模块,用于获取所述故障项目库中所述故障项目集的个数和每个所述微服务在所述故障项目集内的故障发生次数;
频繁故障系数计算子模块,用于根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
频繁故障项目集生成子模块,用于采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
可选地,所述的装置还包括:
日志信息采集模块,用于采集多个所述微服务的日志信息;
日志信息传输模块,用于将所述日志信息传输至所述消息队列。
可选地,所述预设时间范围为多个,所述故障项目库生成模块还包括:
关联信息获取子模块,用于获取多个所述时间范围分别对应的频繁故障项目集之间的关联信息;
分类子模块,用于根据所述关联信息对多个所述时间范围分别对应的频繁故障项目集进行分类。
从以上技术方案可以看出,本发明具有以下优点:本发明通过从预设的消息队列中提取微服务的异常日志信息来生成故障项目库;并为微服务分配对应的权重;从而根据微服务的权重和故障项目库,生成频繁故障项目集;进而采用频繁故障项目集构建在预设监测界面显示的故障树。本发明实施例通过结合微服务的权重来对频繁项进行关联监测,避免频繁项关联监测过程占用内存空间大导致故障树构建耗时长的问题,从而可以在电力计量系统发生故障时从日志中快速构建故障树,实现故障定位。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种微服务的故障监测方法的步骤流程图;
图2为本发明实施例提供的一种微服务的故障监测方法的步骤流程图;
图3为本发明一种基于日志的微服务监测系统整体框架;
图4为本发明一种基于加权思想的频繁项关联监测故障定位模型;
图5为本发明实施例一种微服务的故障监测装置的结构框图。
具体实施方式
本发明实施例提供了一种微服务的故障监测方法和装置,用于解决现有技术无法利用历史日志数据进行故障的定位和监测的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种微服务的故障监测方法的步骤流程图。
本发明提供的一种微服务的故障监测方法,包括:
步骤101,获取输入参数;
在本发明实施例中,当用户需要获取电力计量系统微服务的故障情况时,可以通过电力计量系统的检索页面进行相关参数输入,以获取针对输入参数的反馈信息,该反馈信息可以反映故障的发生情况。
在本发明实施例中,输入参数可以包括故障追踪ID、时间段或电力计量系统下的微服务应用等。
在一个示例中,当输入参数为故障追踪ID时,则可以得到对应ID下的故障信息。该故障ID为随着故障信息的建立逐渐增长的编号。
在另一个示例中,当输入参数为时间段时,反馈信息为该时间段下对应的关联故障发生时间的故障信息。
在另一个示例中,当输入参数为电力计量系统下的微服务应用名称时,比如从电力计量系统中分出来的电量统计微服务,则可以得到与电量统计微服务有关系的所有故障追踪ID对应的故障信息。
步骤102,根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
微服务是一个新兴的软件架构,其可以把一个大型的单个应用程序和服务拆分为数十个微服务。微服务应用相比于传统的程序应用,能够更有效地利用计算资源。这是因为它们通过扩展组件来处理性能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
在本发明实施例中,对微服务进行故障监测的数据可以来源于电力计量系统在运行过程中产生的日志信息。因此,在本发明实施例中,当接收到用户输入的参数时,可以提取微服务的日志信息进行监测,以对电力计量系统运行过程中产生的故障进行监测处理。其中,日志信息可以包括异常日志信息和正常日志信息。
异常日志信息是电力计量系统的微服务在运行过程中所产生的故障信息。记录了故障产生的位置、类型、时间以及具体由哪个微服务产生等情况。
在一个示例中,可以通过日志聚合器Fluentd的代理Td-Agent对装载了电力计量系统的容器产生的日志信息进行收集,并将所收集到的日志信息传输至Kafka消息队列中。
其中,日志聚合器Fluentd是一个开源的通用日志采集和分发系统,Td-Agentz是Fluentd的稳定发行版本,它的出现是因为Fluentd不易于安装,本质上Td-Agent的功能与Fluentd一致。Kafka是一个分布式、支持分区、多副本的分布式消息系统。
步骤103,采用所述多项异常日志信息生成故障项目库;
在本发明实施例中,异常日志信息记录了故障发生的位置、时间和类型等相关信息,通过对异常日志信息进行监测,可以对故障信息进行统计。为了方便对故障信息的管理和后续对故障信息的监测,可以记录故障信息生成故障项目库,该故障项目库记录了电力计量系统在一段时间之内,故障发生的情况。
步骤104,为所述微服务分配对应的权重;
在实际应用中,不同微服务在系统运行过程中,根据所选取的时间段不同,产生日志信息的频率便有所不同,此外,不同微服务在同一时间段内运行所占的权重有所不同。因此在本发明实施例中,可以为微服务动态分配权重,以提升对不同微服务的日志信息进行协同监测的准确性。
步骤105,根据所述权重和所述故障项目库,生成频繁故障项目集;
其中,频繁故障项目集用于记录频繁出现故障的微服务项目。例如,当计算确定电量计算微服务和电量统计微服务出现故障的频率达到预定标准时,便可以生成频繁故障项目集{电量计算,电量统计}。因此,在本发明实施例中,在确定了微服务的权重和故障项目库后,可以生成频繁故障项目集,用以对频繁出现的故障进行整合,加强对频繁出现故障的监测。
步骤106,采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
在获取到故障项目集后,便可以采用故障项目集构建故障树,一般而言,一个故障树表示一个故障事件,而一个故障事件可以有多个故障产生原因,每个故障产生原因对应的故障是故障事件的关联故障。例如,电量统计微服务访问失败可以是因为电量计算模型微服务异常、并发访问电量微服务数过大等情况。这些故障情况会在故障树中体现。因此,在一个示例中,根据频繁故障项目的关联关系不同,频繁故障项目集可以分成强关联频繁故障项目集和弱关联频繁故障项目集。根据频繁故障项目的关联关系,可以生成包含关联关系的故障树。
需要说明的是,在生成故障树后,便可以依据该故障树,预测未来电力计量系统在运行过程中的故障发生情况,从而可以在故障发生前,有针对性地对电力计量系统的运行进行调整,以规避故障的发生。
本发明通过从预设的消息队列中提取微服务的异常日志信息来生成故障项目库;并为微服务分配对应的权重;从而根据微服务的权重和故障项目库,生成频繁故障项目集;进而采用频繁故障项目集构建在预设监测界面显示的故障树。本发明实施例通过结合微服务的权重来对频繁项进行关联监测,避免频繁项关联监测过程占用内存空间大导致故障树构建耗时长的问题,从而可以在电力计量系统发生故障时从日志中快速构建故障树,实现故障定位。
请参阅图2,图2为本发明实施例提供的一种微服务的故障监测方法的步骤流程图。
本发明提供的一种微服务的故障监测方法,包括:
步骤201,采集多个所述微服务的日志信息;
在本发明实施例中,对微服务进行故障监测的数据可以来源于电力计量系统在运行过程中产生的日志信息。
在一个示例中,可以通过Fluentd的代理Td-Agent对装载了电力计量系统的容器产生的日志信息进行收集。
其中,Td-Agentz是Fluentd的稳定发行版本它的出现是因为Fluentd不易于安装,本质上Td-Agent的功能与Fluentd一致。
步骤202,将所述日志信息传输至所述消息队列;
在采集到日志信息后,可以将所收集到的日志信息传输至Kafka消息队列中。Kafka是一个分布式、支持分区、多副本的分布式消息系统。
步骤203,获取输入参数;
在本发明实施例中,当用户需要获取电力计量系统微服务的故障情况时,可以通过电力计量系统的检索页面进行相关参数输入,以获取针对输入参数的反馈信息,该反馈信息可以反映故障的发生情况。
在本发明实施例中,输入参数可以包括故障追踪ID、时间段或电力计量系统下的微服务应用等。
在一个示例中,当输入参数为故障追踪ID时,则可以得到对应ID下的故障信息。该故障ID为随着故障信息的建立逐渐增长的编号。
在另一个示例中,当输入参数为时间段时,反馈信息为该时间段下对应的关联故障发生时间的故障信息。
在另一个示例中,当输入参数为电力计量系统下的微服务应用名称时,比如从电力计量系统中分出来的电量统计微服务,则可以得到与电量统计微服务有关系的所有故障追踪ID对应的故障信息。
步骤204,根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
在本发明实施例中,对微服务进行故障监测的数据可以来源于电力计量系统在运行过程中产生的日志信息。因此,在本发明实施例中,当接收到用户输入的参数时,可以从Kafka消息队列中提取微服务的日志信息进行监测,以对电力计量系统运行过程中产生的故障进行监测处理。其中,日志信息可以包括异常日志信息和正常日志信息。
步骤205,采用所述多项异常日志信息生成故障项目库;
在本发明实施例中,异常日志信息记录了故障发生的位置、时间和类型等相关信息,通过对异常日志信息进行监测,可以对故障信息进行统计。为了方便对故障信息的管理和后续对故障信息的监测,可以记录故障信息生成故障项目库,该故障项目库记录了电力计量系统在一段时间之内,故障发生的情况。
在本发明实施例中,步骤205可以包括以下子步骤:
S11,从所述多项异常日志信息中分别提取对应的故障发生时间;
S12,获取预设时间范围,所述预设时间范围包括多个时间区间;
S13,采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
S14,采用所述多个时间区间对应的故障项目集生成故障项目库。
在本发明实施例中,异常日志信息记录了故障发生的位置、时间和类型等相关信息,通过对异常日志信息进行监测,可以对故障信息进行统计。为了方便对故障信息的管理和后续对故障信息的监测,可以记录故障信息生成故障项目库,该故障项目库记录了电力计量系统在一段时间之内,故障发生的情况。
具体地,在本发明实施例中,可以从消息队列中提取预设时间范围内产生的异常日志信息,并将所提取的异常日志信息按照故障发生的时间顺序排列;接着设定一个比较短的时间尺度,沿着所选定的时间范围的时间顺序,将所选定时间范围划分为多个时间区间;再提取故障发生时间在同一时间区间内的异常日志信息生成故障项目集。将每一个时间区间产生的故障项目集整合起来,便会得到故障项目库。
一般而言,故障产生过程中往往会引发关联故障的产生,不同故障产生的时间有先后,但间隔会比较短,因此,在同一个时间区间内产生的故障便有可能是关联故障。
在一个示例中,在电力计量系统下,有档案微服务A、停电事件微服务B、电量计算微服务C、电量统计微服务D、电量报表微服务E等不同的微服务。这些微服务在一定时间范围内都产生了异常日志信息,提取这些异常日志信息,按照设定时间尺度和发生顺序,可以得到表1所示的故障项目集。
项目集编号ID | 故障项目集 |
E001 | ACD |
E002 | CD |
E003 | B |
E004 | CDE |
表1
步骤206,为所述微服务分配对应的权重;
在实际应用中,不同微服务在系统运行过程中,根据所选取的时间段不同,产生日志信息的频率便有所不同,此外,不同微服务在同一时间段内所占的权重有所不同。因此在本发明实施例中,可以为微服务动态分配权重。
在一个示例中,权重的动态分配依据可以是某个项目集V(项目集内仅1个的可以为一个微服务容器或者一个容器下的微服务API)在由多个项目集构成的项目库Z(全部的容器或API数)上,不同时间窗下日志出现的频度的权重(这里不仅仅是异常日志,包括日常日志);在0-1之间出现该项目V次数越多,权重越高;特殊的,选取的项目集为Z时,其权重为1。
在一个示例中,在电力计量系统下,有档案微服务A、停电事件微服务B、电量计算微服务C、电量统计微服务D、电量报表微服务E等不同的微服务。根据日志信息产生的情况,为每个微服务分配的权重如表2所示:
微服务 | 档案A | 停电事件B | 电量计算C | 电量统计D | 电量报表E |
权重 | 0.6 | 0.3 | 0.8 | 0.7 | 0.2 |
表2
步骤207,根据所述权重和所述故障项目库,生成频繁故障项目集;
在本发明实施例中,在确定了微服务的权重和故障项目库后,可以生成频繁故障项目集。其中,频繁故障项目集用于记录频繁出现故障的微服务项目。
在本发明实施例中,步骤207可以包括以下子步骤:
S21,获取所述故障项目库中所述故障项目集的个和数每个所述微服务在所述故障项目集内的故障发生次数;
S22,根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
S23,采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
微服务的频繁故障系数是指微服务发生故障的可能性大小,当一个微服务的频繁故障系数达到一定数值时,表征该微服务发生故障的可能性较大,为频繁故障项目。
在本发明实施例中,频繁故障系数可以通过如下公式计算得到:
频繁故障系数=微服务权重*(故障项目集内的故障发生次数/故障项目库中故障项目集的个数)
在一个示例中,以表1和表2中的数据为依据进行计算,可以得到每一个微服务的频繁故障系数。例如,档案微服务A的权重为0.6,只在故障项目集E001中发生1次故障,故障项目库中的故障项目集个数为4,则档案微服务A的频繁故障系数为0.6*(1/4)=0.15。同理,可求得其他微服务的频繁故障系数。
具体如表3所示:
微服务 | 档案A | 停电事件B | 电量计算C | 电量统计D | 电量报表E |
故障系数 | 0.15 | 0.08 | 0.6 | 0.53 | 0.05 |
表3
设定频繁故障项目的阈值为0.5,则可以得到频繁故障项目集Y={C,D}。
需要说明的是,不同的时间范围下能够得到不同的频繁故障项目集。对n个不同的频繁故障项目建立n*n关联非对称矩阵(发生异常顺序不同,关联程度不同),便可以得到不同频繁故障项目集之间的关联关系。其中,对多个频繁故障项目集进行关联的关联信息可以包括IP地址、API名称、关联频繁故障子集等,关联方法可采用皮尔斯相似度关联法、条件概率判断法等等。
步骤208,采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
在获取到故障项目集后,便可以采用故障项目集构建故障树,一般而言,一个故障树表示一个故障事件,而一个故障事件可以有多个故障产生原因,每个故障产生原因对应的故障是故障事件的关联故障。例如,电量统计微服务访问失败可以是因为电量计算模型微服务异常、并发访问电量微服务数过大等情况。这些故障情况会在故障树中体现。因此,在一个示例中,根据频繁故障项目的关联关系不同,频繁故障项目集可以分成强关联频繁故障项目集和弱关联频繁故障项目集。根据频繁故障项目的关联关系,可以生成包含关联关系的故障树。
需要说明的是,在生成故障树后,便可以依据该故障树,预测未来电力计量系统在运行过程中的故障发生情况,从而可以在故障发生前,有针对性地对电力计量系统的运行进行调整,以规避故障的发生。
在本发明实施例中,还可以在电力系统中配置检索模块,用于用户存储日志监测结果、容器实时产生的日志数据,并提供对所存储数据的检索功能。
为使本领域技术人员理解本发明实施例,下面通过具体示例进行说明。
请参阅图3,图3为本发明一种基于日志的微服务监测系统整体框架。
第一步:通过Td-Agent采集日志信息,并将日志信息发送至日志聚合器Fluentd聚合日志信息;
第二步:Fluentd将日志信息传输至基于分布式协调服务Zookeeper协调的分布式消息系统Kafka消息队列中,进行消息缓冲;
第三步:日志监测模块从消息队列中消费信息,主要对日志数据进行处理,实现对微服务的监测,主要有三个功能:1、监测微服务的概览与性能指标信息,如微服务请求耗时、所提供的计量API集等信息;2、通过Storm实时数据监测构造出调用链路信息并将结构写入ElasticSearch中供电力计量系统的监测界面调用;3、通过故障追踪模块进行故障追踪,根据前端用户传入的参数,使用基于加权思想的频繁项关联监测方法,从ElasticSearch中对所得日志数据进行汇集以过滤重复的日志数据。然后通过设定时间间隔,使得间隔随时间在日志故障项目方向上滑动。在滑动的过程中,对微服务进行权重的动态分配和关联监测,提取频繁故障项目集,构建故障树发送至控制器,并在监测界面进行展示。
请参阅图4,图4为本发明一种基于加权思想的频繁项关联监测故障定位模型。
如图4所示,当WEB服务器通过页面接收到进行故障定位的页面请求时,根据页面请求进行故障定位,具体方法如下:首先从ElasticSearch中对故障日志进行汇聚,并根据故障日志确定故障项目;接着从从故障项目中提取频繁故障项目集,其中,根据时间窗口的不同,可以提取不同的频繁故障项目集;再对频繁故障项目集进行分类,根据关联关系,分成强关联频繁故障项目集和弱关联频繁故障项目集;最后根据频繁故障项目集构建故障树,系统可根据故障树实现对故障的定位。
本发明通过从预设的消息队列中提取微服务的异常日志信息来生成故障项目库;并为微服务分配对应的权重;从而根据微服务的权重和故障项目库,生成频繁故障项目集;进而采用频繁故障项目集构建在预设监测界面显示的故障树。本发明实施例通过结合微服务的权重来对频繁项进行关联监测,避免频繁项关联监测过程占用内存空间大导致故障树构建耗时长的问题,从而可以在电力计量系统发生故障时从日志中快速构建故障树,实现故障定位。
请参阅图5,图5为本发明实施例一种微服务的故障监测装置的结构框图。
本发明提供的一种微服务的故障监测装置,应用于电力计量系统,所述电力计量系统包括多个微服务;所述的装置包括:
输入参数获取模块501,用于获取输入参数;
日志信息提取模块502,用于根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
故障项目库生成模块503,用于采用所述多项异常日志信息生成故障项目库;
权重分配模块504,用于为所述微服务分配对应的权重;
频繁故障项目集生成模块505,用于根据所述权重和所述故障项目库,生成频繁故障项目集;
构建模块506,用于采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
在本发明实施例中,所述故障项目库生成模块503,包括:
故障发生时间提取子模块,用于从所述多项异常日志信息中分别提取对应的故障发生时间;
时间范围获取子模块,用于获取预设时间范围,所述预设时间范围包括多个时间区间;
故障项目集生成子模块,用于采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
故障项目库生成子模块,用于采用所述多个时间区间对应的故障项目集生成故障项目库。
在本发明实施例中,所述频繁故障项目集生成模块505,包括:
获取子模块,用于获取所述故障项目库中所述故障项目集的个数和每个所述微服务在所述故障项目集内的故障发生次数;
频繁故障系数计算子模块,用于根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
频繁故障项目集生成子模块,用于采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
在本发明实施例中,所述的装置还包括:
日志信息采集模块,用于采集多个所述微服务的日志信息;
日志信息传输模块,用于将所述日志信息传输至所述消息队列。
在本发明实施例中,所述预设时间范围为多个,所述故障项目库生成模块503,还包括:
关联信息获取子模块,用于获取多个所述时间范围分别对应的频繁故障项目集之间的关联信息;
分类子模块,用于根据所述关联信息对多个所述时间范围分别对应的频繁故障项目集进行分类。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务的故障监测方法,其特征在于,应用于电力计量系统,所述电力计量系统包括多个微服务;所述方法包括:
获取输入参数;
根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
采用所述多项异常日志信息生成故障项目库;
为所述微服务分配对应的权重;
根据所述权重和所述故障项目库,生成频繁故障项目集;
采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
2.根据权利要求1所述的方法,其特征在于,所述采用所述多项异常日志信息生成故障项目库的步骤,包括:
从所述多项异常日志信息中分别提取对应的故障发生时间;
获取预设时间范围,所述预设时间范围包括多个时间区间;
采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
采用所述多个时间区间对应的故障项目集生成故障项目库。
3.根据权利要求2所述的方法,其特征在于,所述根据所述权重和所述故障项目库,生成频繁故障项目集的步骤,包括:
获取所述故障项目库中所述故障项目集的个数和每个所述微服务在所述故障项目集内的故障发生次数;
根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
4.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
采集多个所述微服务的日志信息;
将所述日志信息传输至所述消息队列,并缓冲所述日志信息。
5.根据权利要求2所述的方法,其特征在于,所述预设时间范围为多个,所述还包括:
获取多个所述时间范围分别对应的频繁故障项目集之间的关联信息;
根据所述关联信息对多个所述时间范围分别对应的频繁故障项目集进行分类。
6.一种微服务的故障监测装置,其特征在于,应用于电力计量系统,所述电力计量系统包括多个微服务;所述的装置包括:
输入参数获取模块,用于获取输入参数;
日志信息提取模块,用于根据所述输入参数从预设的消息队列中提取所述微服务的日志信息;所述日志信息包括多项异常日志信息;
故障项目库生成模块,用于采用所述多项异常日志信息生成故障项目库;
权重分配模块,用于为所述微服务分配对应的权重;
频繁故障项目集生成模块,用于根据所述权重和所述故障项目库,生成频繁故障项目集;
构建模块,用于采用所述频繁故障项目集构建故障树,并在预设监测界面显示所述故障树。
7.根据权利要求6所述的装置,其特征在于,所述故障项目库生成模块,包括:
故障发生时间提取子模块,用于从所述多项异常日志信息中分别提取对应的故障发生时间;
时间范围获取子模块,用于获取预设时间范围,所述预设时间范围包括多个时间区间;
故障项目集生成子模块,用于采用所述故障发生时间处于同一时间区间的异常日志信息对应的微服务生成故障项目集;
故障项目库生成子模块,用于采用所述多个时间区间对应的故障项目集生成故障项目库。
8.根据权利要求7所述的装置,其特征在于,所述频繁故障项目集生成模块,包括:
获取子模块,用于获取所述故障项目库中所述故障项目集的个数和每个所述微服务在所述故障项目集内的故障发生次数;
频繁故障系数计算子模块,用于根据每个所述微服务的权重、所述故障发生次数和所述故障项目库中所述故障项目集的个数,计算每个所述微服务的频繁故障系数;
频繁故障项目集生成子模块,用于采用频繁故障系数大于或等于预设阈值的微服务生成频繁故障项目集。
9.根据权利要求6所述的装置,其特征在于,所述的装置还包括:
日志信息采集模块,用于采集多个所述微服务的日志信息;
日志信息传输模块,用于将所述日志信息传输至所述消息队列。
10.根据权利要求7所述的装置,其特征在于,所述预设时间范围为多个,所述故障项目库生成模块还包括:
关联信息获取子模块,用于获取多个所述时间范围分别对应的频繁故障项目集之间的关联信息;
分类子模块,用于根据所述关联信息对多个所述时间范围分别对应的频繁故障项目集进行分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542295.0A CN111694721A (zh) | 2020-06-15 | 2020-06-15 | 一种微服务的故障监测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542295.0A CN111694721A (zh) | 2020-06-15 | 2020-06-15 | 一种微服务的故障监测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111694721A true CN111694721A (zh) | 2020-09-22 |
Family
ID=72481082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010542295.0A Pending CN111694721A (zh) | 2020-06-15 | 2020-06-15 | 一种微服务的故障监测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694721A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698975A (zh) * | 2020-12-14 | 2021-04-23 | 北京大学 | 一种微服务架构信息系统的故障根因定位方法及系统 |
CN113391943A (zh) * | 2021-06-18 | 2021-09-14 | 广东工业大学 | 一种基于因果推断的微服务故障根因定位方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600000A (zh) * | 2018-04-12 | 2018-09-28 | 咪咕文化科技有限公司 | 一种故障预测方法、服务器和计算机存储介质 |
CN109634816A (zh) * | 2018-11-27 | 2019-04-16 | 平安科技(深圳)有限公司 | 应用管理方法及终端设备 |
CN110633186A (zh) * | 2019-08-16 | 2019-12-31 | 南方电网科学研究院有限责任公司 | 用于电力计量微服务架构的日志监控系统及实现方法 |
-
2020
- 2020-06-15 CN CN202010542295.0A patent/CN111694721A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600000A (zh) * | 2018-04-12 | 2018-09-28 | 咪咕文化科技有限公司 | 一种故障预测方法、服务器和计算机存储介质 |
CN109634816A (zh) * | 2018-11-27 | 2019-04-16 | 平安科技(深圳)有限公司 | 应用管理方法及终端设备 |
CN110633186A (zh) * | 2019-08-16 | 2019-12-31 | 南方电网科学研究院有限责任公司 | 用于电力计量微服务架构的日志监控系统及实现方法 |
Non-Patent Citations (2)
Title |
---|
王帅: "基于日志的微服务化系统监测与故障预测的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士) (信息科技辑)》 * |
赵建涛等: "微服务故障诊断相关技术研究探讨", 《网络新媒体技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112698975A (zh) * | 2020-12-14 | 2021-04-23 | 北京大学 | 一种微服务架构信息系统的故障根因定位方法及系统 |
CN112698975B (zh) * | 2020-12-14 | 2022-09-27 | 北京大学 | 一种微服务架构信息系统的故障根因定位方法及系统 |
CN113391943A (zh) * | 2021-06-18 | 2021-09-14 | 广东工业大学 | 一种基于因果推断的微服务故障根因定位方法及装置 |
CN113391943B (zh) * | 2021-06-18 | 2023-01-06 | 广东工业大学 | 一种基于因果推断的微服务故障根因定位方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7325584B2 (ja) | アラームログ圧縮方法、装置、およびシステム、並びに記憶媒体 | |
CN107248927B (zh) | 故障定位模型的生成方法、故障定位方法和装置 | |
US9672085B2 (en) | Adaptive fault diagnosis | |
CN111147322B (zh) | 5g核心网微服务架构的测试系统及方法 | |
CN107704387B (zh) | 用于系统预警的方法、装置、电子设备及计算机可读介质 | |
WO2017131774A1 (en) | Log event summarization for distributed server system | |
CN111796955B (zh) | 故障根源定位方法、系统、装置及存储介质 | |
CN112087334A (zh) | 告警根因分析方法、电子设备和存储介质 | |
CN111694721A (zh) | 一种微服务的故障监测方法和装置 | |
CN108173672A (zh) | 检测故障的方法和装置 | |
CN111181800A (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
CN116719664B (zh) | 基于微服务部署的应用和云平台跨层故障分析方法及系统 | |
CN111984495A (zh) | 一种大数据监控方法、装置和存储介质 | |
CN116804957A (zh) | 一种系统监控方法及装置 | |
CN111970151A (zh) | 虚拟及容器网络的流量故障定位方法及系统 | |
CN115168042A (zh) | 监控集群的管理方法及装置、计算机存储介质、电子设备 | |
CN111339466A (zh) | 接口管理方法、装置、电子设备及可读存储介质 | |
CN110069371A (zh) | 一种识别固态硬盘性能的方法及固态硬盘 | |
CN112416557B (zh) | 调用关系的确定方法和装置、存储介质及电子装置 | |
US8442947B2 (en) | Management of performance data | |
CN110609761B (zh) | 确定故障源的方法、装置、存储介质和电子设备 | |
CN112035366A (zh) | 一种测试案例生成方法、装置及设备 | |
CN116974805A (zh) | 根因确定方法、设备和存储介质 | |
CN115686381A (zh) | 存储集群运行状态的预测方法及装置 | |
CN113472881B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200922 |
|
RJ01 | Rejection of invention patent application after publication |