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

一种告警通知方法、系统、设备以及存储介质

文献发布时间:2024-04-18 19:58:53


一种告警通知方法、系统、设备以及存储介质

技术领域

本发明涉及云平台领域,具体涉及一种告警通知方法、系统、设备以及存储介质。

背景技术

目前,告警通知的处理主要有以下两种方式,第一种是产生一条告警后立马对这条告警进行通知,这样保持了很好的实时性,使得运维人员能够第一时间接收到告警信息,但是这种方式在告警信息较多时,运维人员可能短时间内接收到大量的告警通知,形成通知泛滥而不容易筛选的有用的信息,容易忽视掉严重的告警信息,同时也会导致通知系统或者通知方式的压力比较大;另外的方式,往往通过队列暂存,将告警信息存放到一定长度的队列中,队列满时将队列中的内容进行通知发送,这样较好的缓解了通知压力,但是在面对告警较少但是信息非常重要时,往往会造成告警信息的不及时。虽然有些方案对这两种方式进行了结合,但往往都是一些硬性指标的组合,无法应对系统实时多变的告警压力。

发明内容

有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种告警通知方法,包括以下步骤:

响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;

获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;

每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;

响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;

根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。

在一些实施例中,还包括:

响应于所述优先级之和小于所述通知池的大小,对当前所述通知池中的每一个消息体的优先级乘以预设膨胀系数以对所述消息体的优先级进行膨胀,从而增加每一个所述消息体的优先级。

在一些实施例中,还包括:

将从上一次所述优先级之和不小于所述通知池的大小到当前所述优先级之和不小于所述通知池的大小作为一个通知周期;

统计一个通知周期内计算所述通知池中当前所有信息体的优先级之和的总次数,以及每一次在计算所述通知池中当前所有信息体的优先级之和时,所有消息体的数量和发生优先级膨胀的消息体的数量;

根据R

根据R

响应于所述误差率大于阈值且R

响应于所述误差率大于阈值且R

在一些实施例中,响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级,进一步包括:

响应于接收到告警信息,对所述告警信息进行解析得到告警事件、所属资源类型;

判断所述资源类型和所述告警事件是否满足预设规则;

响应于所述资源类型和所述告警事件不满足预设规则,根据所述告警事件确定告警级别,并确定所述告警级别对应的第一优先级和所述资源类型对应的第二优先级;

将所述第一优先级和所述第二优先级相加作为所述告警信息的优先级。

在一些实施例中,还包括:

响应于满足预设规则,获取所述预设规则对应的优先级,其中所述预设规则对应的优先级为所述通知池的大小;

将所述预设规则对应的优先级作为所述告警信息的优先级。

在一些实施例中,响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列,进一步包括:

将所述优先级等于所述通知池的大小的消息体放入到第一发送队列;

将其他消息体按照所述优先级从大到小的顺序依次将每一个消息体放入第二发送队列,其中所述第一发送队列的优先级大于所述第二发送队列。

在一些实施例中,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,进一步包括:

响应于检测到所述第一发送队列和/或所述第二发送队列中存在消息体,调用通知任务,并根据所述第一发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,和/或,根据所述第二发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,其中所述第一发送队列和所述第二发送队列中均存在消息体时,所述通知任务优先处理所述第一发送队列。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种告警通知系统,包括:

确定模块,配置为响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;

获取模块,配置为获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;

计算模块,配置为每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;

处理模块,配置为响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;

发送模块,配置为根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行如上所述的任一种告警通知方法的步骤。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种告警通知方法的步骤。

本发明具有以下有益技术效果之一:本发明提出的方案通过建立通知池,并将告警信息形成的通知体通过优先级计算后放入池中,通过比较优先级大小之和与通知池的大小以定时监测通知池是否已满,池满后则回取出池内的所有通知体根据优先级聚合后进行通知发送。这样可以在保证告警信息通知的实时性的情况下,尽量的减少对通知平台的压力,使得告警信息能够及时准确的通知到相关人员以便进行及时处理。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明的实施例提供的告警通知方法的流程示意图;

图2为本发明的实施例提供的通知体优先级膨胀的示意图;

图3为本发明的实施例提供的一个通知周期内通知体优先级变化示意图;

图4为本发明的实施例提供的告警通知系统的结构示意图;

图5为本发明的实施例提供的计算机设备的结构示意图;

图6为本发明的实施例提供的计算机可读存储介质的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

根据本发明的一个方面,本发明的实施例提出一种告警通知方法,如图1所示,其可以包括步骤:

S1,响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;

S2,获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;

S3,每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;

S4,响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;

S5,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。

本发明提出的方案通过建立通知池,并将告警信息形成的通知体通过优先级计算后放入池中,通过比较优先级大小之和与通知池的大小以定时监测通知池是否已满,池满后则回取出池内的所有通知体根据优先级聚合后进行通知发送。可以在保证告警信息通知的实时性的情况下,尽量的减少对通知平台的压力,使得告警信息能够及时准确的通知到相关人员以便进行及时处理。

在一些实施例中,本发明提出的通知体是一个通知单位,本质上是一个待发送的信息体,包含通知信息、通知方式、通知人、生成时间、优先级等信息,会根据其优先级对大小进行计算。通知池是一个具有一定大小的池,包含多个通知体,通知体不断的放入到通知池中,检查任务定时计算所述通知池中当前所有信息体的优先级之和,以判断通知池是否已满,池满时则调用通知任务进行通知发送。发送完成后清空通知池以便新的通知体能够放入。这样,动态通知池一个通知周期内,池的大小不变,但是内部的优先级是动态变化的。然后,根据通知池的池满历史情况,例如时间和频率,不断的调整通知池的大小,在满足通知能力的前期下,尽快的进行通知的发送。这样,多个通知周期之间,动态通知池外部的池大小是可以动态调整的。

在一些实施例中,还包括:

响应于所述优先级之和小于所述通知池的大小,对当前所述通知池中的每一个消息体的优先级乘以预设膨胀系数以对所述消息体的优先级进行膨胀,从而增加每一个所述消息体的优先级。

具体的,通知体在通知池中每等待一个检查任务周期,则优先级会膨胀,例如如图2所示,通知池大小为100,膨胀系数S默认为0.2,通知体A和B在刚放入通知池中时优先级分别为10和5,但是因为通知池未满还未进行通知发送,此时通知体A和B的新的优先级分别为12和6。

如果优先级之和已经达到或者超过通知池的大小,则通知任务介入,取出池中所有的通知体进入缓冲区以便进行通知发送(通知发送时对每个联系人按照优先级倒序排序,以便收件人收到的通知信息中最先展示高优先级的通知)。这样通知池清空,进入下次循环。

在一些实施例中,还包括:

将从上一次所述优先级之和不小于所述通知池的大小到当前所述优先级之和不小于所述通知池的大小作为一个通知周期;

统计一个通知周期内计算所述通知池中当前所有信息体的优先级之和的总次数,以及每一次在计算所述通知池中当前所有信息体的优先级之和时,所有消息体的数量和发生优先级膨胀的消息体的数量;

根据R

根据R

响应于所述误差率大于阈值且R

响应于所述误差率大于阈值且R

具体的,可以将从上一次所述优先级之和不小于所述通知池的大小到当前所述优先级之和不小于所述通知池的大小作为一个通知周期,然后统计在一个通知周期内,执行的检查任务次数,即计算所述通知池中当前所有信息体的优先级之和的总次数,以及统计每一次进行检查任务时,所有消息体的数量和发生优先级膨胀的消息体的数量,根据R

例如误差率为R

例如,如图3所示,通知池的大小为30,计算所述通知池中当前所有信息体的优先级之和的总次数为3,第一次检查时,加入了通知体A和通知体B,优先级分别为10和5,优先级总和15,此时N

这时计算通知膨胀率R

在一些实施例中,响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级,进一步包括:

响应于接收到告警信息,对所述告警信息进行解析得到告警事件、所属资源类型;

判断所述资源类型和所述告警事件是否满足预设规则;

响应于所述资源类型和所述告警事件不满足预设规则,根据所述告警事件确定告警级别,并确定所述告警级别对应的第一优先级和所述资源类型对应的第二优先级;

将所述第一优先级和所述第二优先级相加作为所述告警信息的优先级。

具体的,当收到告警信息,可以根据告警信息对应的告警事件(例如宕机、利用率高等)和所属的资源类型(例如服务器或云主机等),判断是否满足预设规则,预设规则可以是特定的资源类型发生了特定的告警事件,如果不满足预设规则,则可以根据所述告警事件确定告警级别,并确定所述告警级别对应的第一优先级和所述资源类型对应的第二优先级,将所述第一优先级和所述第二优先级相加作为所述告警信息的优先级。

在一些实施例中,还包括:

响应于满足预设规则,获取所述预设规则对应的优先级,其中所述预设规则对应的优先级为所述通知池的大小;

将所述预设规则对应的优先级作为所述告警信息的优先级。

具体的,告警信息中会存在一些特殊的告警,例如主机断电等,这样当告警信息满足预设规则,计算处理优先级时直接取优先级大小等于通知池大小。这样结合上述算法,此类告警通知体产生时,优先级总大小会不小于通知池大小,会立即调用通知任务进行通知。

在一些实施例中,响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列,进一步包括:

将所述优先级等于所述通知池的大小的消息体放入到第一发送队列;

将其他消息体按照所述优先级从大到小的顺序依次将每一个消息体放入第二发送队列,其中所述第一发送队列的优先级大于所述第二发送队列。

在一些实施例中,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,进一步包括:

响应于检测到所述第一发送队列和/或所述第二发送队列中存在消息体,调用通知任务,并根据所述第一发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,和/或,根据所述第二发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,其中所述第一发送队列和所述第二发送队列中均存在消息体时,所述通知任务优先处理所述第一发送队列。

具体的,为了应对特殊情况,例如有些告警信息是需要立马通知的,像这种告警信息在通知设置时可以设置到立即通知队列中,即第一发送队列,其他消息体按照所述优先级从大到小的顺序依次将每一个消息体放入第二发送队列,其中所述第一发送队列的优先级大于所述第二发送队列,这样可以优先发送第一发送对列中的消息体以及时进行通知。

本发明提出的方案通过引入通知池和通知体的概念,将告警通知池化,一方面可以将告警通知信息批量通知,以便进行通知汇聚,减少通知泛滥;通知可以按照优先级排序通知,使得通知接收人能够方便的筛选重要的告警新;另一方面,可以对通知池进行动态化处理,根据通知压力和通知数量,调整通知池的大小,以便充分利用通知系统,在保持通知系统压力稳定的情况下,尽可能的提高通知发送的效率。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种告警通知系统400,如图4所示,包括:

确定模块401,配置为响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;

获取模块402,配置为获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;

计算模块403,配置为每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;

处理模块404,配置为响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;

发送模块405,配置为根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。

在一些实施例中,处理模块404还配置为:

响应于所述优先级之和小于所述通知池的大小,对当前所述通知池中的每一个消息体的优先级乘以预设膨胀系数以对所述消息体的优先级进行膨胀,从而增加每一个所述消息体的优先级。

在一些实施例中,处理模块404还配置为:

将从上一次所述优先级之和不小于所述通知池的大小到当前所述优先级之和不小于所述通知池的大小作为一个通知周期;

统计一个通知周期内计算所述通知池中当前所有信息体的优先级之和的总次数,以及每一次在计算所述通知池中当前所有信息体的优先级之和时,所有消息体的数量和发生优先级膨胀的消息体的数量;

根据R

根据R

响应于所述误差率大于阈值且R

响应于所述误差率大于阈值且R

在一些实施例中,确定模块401还配置为:

响应于接收到告警信息,对所述告警信息进行解析得到告警事件、所属资源类型;

判断所述资源类型和所述告警事件是否满足预设规则;

响应于所述资源类型和所述告警事件不满足预设规则,根据所述告警事件确定告警级别,并确定所述告警级别对应的第一优先级和所述资源类型对应的第二优先级;

将所述第一优先级和所述第二优先级相加作为所述告警信息的优先级。

在一些实施例中,确定模块401还配置为:

响应于满足预设规则,获取所述预设规则对应的优先级,其中所述预设规则对应的优先级为所述通知池的大小;

将所述预设规则对应的优先级作为所述告警信息的优先级。

在一些实施例中,处理模块404还配置为:

将所述优先级等于所述通知池的大小的消息体放入到第一发送队列;

将其他消息体按照所述优先级从大到小的顺序依次将每一个消息体放入第二发送队列,其中所述第一发送队列的优先级大于所述第二发送队列。

在一些实施例中,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,进一步包括:

响应于检测到所述第一发送队列和/或所述第二发送队列中存在消息体,调用通知任务,并根据所述第一发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,和/或,根据所述第二发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,其中所述第一发送队列和所述第二发送队列中均存在消息体时,所述通知任务优先处理所述第一发送队列。

基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备501,包括:

至少一个处理器520;以及

存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种告警通知方法的步骤。

基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序610,计算机程序610被处理器执行时执行如上的任一种告警通知方法的步骤。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 告警预测方法、系统、存储介质及计算机设备
  • 一种数据存储方法、调度装置、系统、设备及存储介质
  • 一种存储系统的状态检测方法、装置、设备及存储介质
  • 一种数据存储方法、系统、智能可穿戴设备及存储介质
  • 一种存储系统的构建方法、装置、设备及存储介质
  • RocketMQ监控和告警通知方法、系统、电子设备及存储介质
  • 一种告警压缩通知方法、装置、设备和可读存储介质
技术分类

06120116511231