本发明涉及云平台领域,具体涉及一种告警通知方法、系统、设备以及存储介质。
背景技术:
1、目前,告警通知的处理主要有以下两种方式,第一种是产生一条告警后立马对这条告警进行通知,这样保持了很好的实时性,使得运维人员能够第一时间接收到告警信息,但是这种方式在告警信息较多时,运维人员可能短时间内接收到大量的告警通知,形成通知泛滥而不容易筛选的有用的信息,容易忽视掉严重的告警信息,同时也会导致通知系统或者通知方式的压力比较大;另外的方式,往往通过队列暂存,将告警信息存放到一定长度的队列中,队列满时将队列中的内容进行通知发送,这样较好的缓解了通知压力,但是在面对告警较少但是信息非常重要时,往往会造成告警信息的不及时。虽然有些方案对这两种方式进行了结合,但往往都是一些硬性指标的组合,无法应对系统实时多变的告警压力。
技术实现思路
1、有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种告警通知方法,包括以下步骤:
2、响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;
3、获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;
4、每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;
5、响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;
6、根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。
7、在一些实施例中,还包括:
8、响应于所述优先级之和小于所述通知池的大小,对当前所述通知池中的每一个消息体的优先级乘以预设膨胀系数以对所述消息体的优先级进行膨胀,从而增加每一个所述消息体的优先级。
9、在一些实施例中,还包括:
10、将从上一次所述优先级之和不小于所述通知池的大小到当前所述优先级之和不小于所述通知池的大小作为一个通知周期;
11、统计一个通知周期内计算所述通知池中当前所有信息体的优先级之和的总次数,以及每一次在计算所述通知池中当前所有信息体的优先级之和时,所有消息体的数量和发生优先级膨胀的消息体的数量;
12、根据rt=(nt1/ns1+nt2/ns2+...+ntn/nsn)/(n-1)计算通知膨胀率rt,其中ntn为第n次计算所述通知池中当前所有信息体的优先级之和时,发生优先级膨胀的消息体的数量;nsn为第n次计算所述通知池中当前所有信息体的优先级之和时,所有消息体的数量;
13、根据rtmp=|(rt-r)|/r计算误差率,其中r为基线膨胀率;
14、响应于所述误差率大于阈值且rt大于r,根据n-n*rtmp*w减少所述通知池的大小,其中n为当前通知池大小;
15、响应于所述误差率大于阈值且rt小于r,根据n+n*rtmp*w增大所述通知池的大小,其中n为当前通知池大小。
16、在一些实施例中,响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级,进一步包括:
17、响应于接收到告警信息,对所述告警信息进行解析得到告警事件、所属资源类型;
18、判断所述资源类型和所述告警事件是否满足预设规则;
19、响应于所述资源类型和所述告警事件不满足预设规则,根据所述告警事件确定告警级别,并确定所述告警级别对应的第一优先级和所述资源类型对应的第二优先级;
20、将所述第一优先级和所述第二优先级相加作为所述告警信息的优先级。
21、在一些实施例中,还包括:
22、响应于满足预设规则,获取所述预设规则对应的优先级,其中所述预设规则对应的优先级为所述通知池的大小;
23、将所述预设规则对应的优先级作为所述告警信息的优先级。
24、在一些实施例中,响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列,进一步包括:
25、将所述优先级等于所述通知池的大小的消息体放入到第一发送队列;
26、将其他消息体按照所述优先级从大到小的顺序依次将每一个消息体放入第二发送队列,其中所述第一发送队列的优先级大于所述第二发送队列。
27、在一些实施例中,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,进一步包括:
28、响应于检测到所述第一发送队列和/或所述第二发送队列中存在消息体,调用通知任务,并根据所述第一发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,和/或,根据所述第二发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,其中所述第一发送队列和所述第二发送队列中均存在消息体时,所述通知任务优先处理所述第一发送队列。
29、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种告警通知系统,包括:
30、确定模块,配置为响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级;
31、获取模块,配置为获取所述告警信息对应的通知参数并将所述告警信息、所述优先级、所述通知参数封装成信息体放入通知池中;
32、计算模块,配置为每隔预设时间段计算所述通知池中当前所有信息体的优先级之和;
33、处理模块,配置为响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列;
34、发送模块,配置为根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息。
35、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
36、至少一个处理器;以及
37、存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行如上所述的任一种告警通知方法的步骤。
38、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种告警通知方法的步骤。
39、本发明具有以下有益技术效果之一:本发明提出的方案通过建立通知池,并将告警信息形成的通知体通过优先级计算后放入池中,通过比较优先级大小之和与通知池的大小以定时监测通知池是否已满,池满后则回取出池内的所有通知体根据优先级聚合后进行通知发送。这样可以在保证告警信息通知的实时性的情况下,尽量的减少对通知平台的压力,使得告警信息能够及时准确的通知到相关人员以便进行及时处理。
1.一种告警通知方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,还包括:
3.如权利要求2所述的方法,其特征在于,还包括:
4.如权利要求1所述的方法,其特征在于,响应于接收到告警信息,确定所述告警信息的告警级别和产生所述告警信息的资源类型,并根据所述告警级别和所述资源类型确定所述告警信息的优先级,进一步包括:
5.如权利要求4所述的方法,其特征在于,还包括:
6.如权利要求5所述的方法,其特征在于,响应于所述优先级之和不小于所述通知池的大小,按照所述优先级从大到小的顺序依次将每一个消息体放入发送队列,进一步包括:
7.如权利要求6所述的方法,其特征在于,根据所述发送队列中每一个消息体中的所述通知参数发送相应的所述告警信息,进一步包括:
8.一种告警通知系统,其特征在于,包括:
9.一种计算机设备,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。