一种告警检测方法

文档序号:6488506阅读:155来源:国知局
一种告警检测方法
【专利摘要】本申请公开了一种告警检测方法,包括:创建以预设的循环间隔为周期循环运行的自处理任务,作为故障检测中心;为系统中的各个故障检测点设置相应的故障检测单元,用于进行相应故障检测点的故障检测;所述故障检测中心根据自身循环运行的次数确定时长,并按照各个故障检测单元的检测周期,通知各个故障检测单元对相应的故障检测点进行故障检测;所述故障检测中心接收各个故障检测单元上报的故障检测结果,并按照相应故障检测点的故障状态判决条件判定所述故障检测点的当前状态,当任一故障检测点的当前状态为故障时向用户告警。应用本申请,能够提高系统性能。
【专利说明】一种告警检测方法
【技术领域】
[0001]本申请涉及故障检测技术,特别涉及一种告警检测方法。
【背景技术】
[0002]对于实时告警的检测,现有技术大多均是采用分开独自检测,汇总处理的方式。具体处理如图1所示:
[0003]1、各功能模块分别通过定时系统定时检测各自相关故障,通过统一接口上报到故障管理中心;
[0004]2、由故障管理中心对故障统一处理,通过告警展现给用户。
[0005]上述实时告警检测方式存在如下问题:
[0006]1、由于检测点比较多,大量实时告警的检测真实存在,而且不同的告警检测机制各不相同,因此,导致系统中需要启用大量的定时器(每个检测点至少一个),而定时器的运行是始终不停的,严重影响系统性能。对于同一模块的告警检测,也曾经有方案尝试合并定时器。但由于不同告警检测的机制不同:包括检测时机、检测周期、判断条件、告警检测平滑等,导致很多定时器无法合并,否则将增加检测机制的复杂度并牺牲代码的可扩展性。
[0007]2、对于多任务处理系统,多个任务之间按照任务优先级来分配CPU的时间片,优先级高的优先得到时间片,同等优先级的平均分配时间片。任务在分配的时间片内处理任务实现的功能。如果优先级比较高的任务如果处理时间比较长,将影响其它任务的执行。检测模块所在任务优先级相对比较高,当该模块的检测告警的定时器不断产生超时中断处理时,占用大量的CPU,使得其它相对比较低或者同等优先级的任务无法运行或者运行较慢,影响了其它功能的运行效果甚至导致其它功能无法正常运行。
[0008]对于某些告警的检测,由于检测周期比较短(最小是IOOms检测一次),且所在任务优先级相对比较高,导致该定时器所在任务占用CPU比较多,影响本任务或者其它任务中功能模块或者业务模块的运行。系统运行后导致其它功能无法正常运行,一些业务无法开展。严重情况下,由于大量占用CPU,系统不能及时喂狗,导致系统复位。由于系统是以任务为单位运行,为定位该问题增加了难度。问题发现后,由于告警检测也是必须交付的功能,需要及时找出替代定时器的方式,且不能影响其它任务的运行。
[0009]3、告警检测分布在不同的模块,且检测机制各不相同,很难统一。告警检测点比较多,检测机制各不相同,需要不同的模块分别完成。

【发明内容】

[0010]本申请提供一种告警检测方法,能够在系统中进行多种不同类型检测的同时,大大降低对系统性能的影响,提高系统整体性能。
[0011]一种告警检测方法,包括:
[0012]创建以预设的循环间隔为周期循环运行的自处理任务,作为故障检测中心;为系统中的各个故障检测点设置相应的故障检测单元,用于进行相应故障检测点的故障检测;[0013]所述故障检测中心根据自身循环运行的次数确定时长,并按照各个故障检测单元的检测周期,通知各个故障检测单元对相应的故障检测点进行故障检测;
[0014]所述故障检测中心接收各个故障检测单元上报的故障检测结果,并按照相应故障检测点的故障状态判决条件判定所述故障检测点的当前状态,当任一故障检测点的当前状态为故障时向用户告警。
[0015]较佳地,所述故障检测中心获取各个故障检测单元的检测周期和相应故障检测点的故障状态判决条件的方式为:所述各个故障检测单元向所述故障检测中心上报故障检测信息,包括故障检测单元的检测周期和相应故障检测点的故障状态判决条件。
[0016]较佳地,所述故障状态判决条件包括平滑周期。
[0017]较佳地,所述故障检测中心的处理优先级低于系统中的业务模块和功能模块。
[0018]较佳地,所述故障检测单元上报的故障检测信息包括:故障状态获取接口和故障上报接口 ;
[0019]所述通知各个故障检测单元对相应的故障检测点进行故障检测包括:所述故障检测中心利用各个故障检测单元上报的故障状态获取接口,调用相应故障检测点的检测函数进行所述故障检测;
[0020]所述向用户告警包括:所述故障检测中心利用各个故障检测单元上报的故障上报接口,将相应故障检测点的故障状态上报给故障处理中心,所述故障处理中心将所述故障状态通过告警形式提供给用户。
[0021]较佳地,各个故障检测单元的检测周期为所述循环间隔的整数倍。
[0022]由上述技术方案可见,本申请中,创建以预设的循环间隔为周期循环运行的自处理任务,作为故障检测中心;为系统中的各个故障检测点设置相应的故障检测单元,用于进行相应故障检测点的故障检测。故障检测中心根据自身循环运行的次数确定时长,并按照各个故障检测单元的检测周期,通知各个故障检测单元对相应的故障检测点进行故障检测。在故障检测单元进行故障检测后,故障检测中心接收各个故障检测单元上报的故障检测结果,并按照相应故障检测点的故障状态判决条件判定相应故障检测点的当前状态,当任一故障检测点的当前状态发生变化时向用户告警。通过上述方式,利用自处理任务的循环间隔代替定时器来计算时长,从而控制故障检测周期,能够节省众多定时器占用的系统资源,用于执行其他任务,提高系统性能。
【专利附图】

【附图说明】
[0023]图1为现有告警检测方法的示意图;
[0024]图2为本申请中告警检测方法的具体流程图。
【具体实施方式】
[0025]为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
[0026]图2为本申请中告警检测方法的具体流程图,用于在系统中实现对多个检测点的故障检测。其中,在系统中对应各个故障检查点设置有相应的故障检测单元,用于实现对相应故障检测点的故障检测。如图2所示,该方法包括:[0027]步骤201,系统启动后,创建以预设的循环间隔为周期循环运行的自处理任务,作为故障检测中心。
[0028]自处理任务可以通过一个死循环函数来实现,该函数执行的周期为循环间隔。其中,循环间隔的设置可以根据经验和系统中各故障检测单元的故障检测周期进行设定。通常,系统中故障检测单元的故障检测周期均为循环间隔的整数倍,这样,可以利用自处理任务的循环执行次数来代替定时器确定时长。
[0029]另外,优选地,可以将自处理任务的优先级设置为低于系统中的其他功能模块和业务模块,从而保证系统中其他任务的执行。
[0030]步骤202,故障检测中心获取各个故障检测单元的检测周期。
[0031]其中,故障检测中心获取各故障检测单元的检测周期,可以通过预先配置的方式进行,或者也可以在系统启动后由各个故障检测单元自行上报。
[0032]在故障检测中心获取检测周期时,可以一并获取故障检测单元的相关故障检测信息,例如相应故障检测点的故障判决条件、故障状态获取接口、故障上报接口和故障类型等。其中,故障判决条件中可以包括平滑周期等。
[0033]步骤203,故障检测中心根据自身循环运行的次数确定时长,并按照各个故障检测单元的检测周期,通知各个故障检测单元对相应的故障检测点进行故障检测。
[0034]如前所述,故障检测中心以循环间隔为周期运行,因此根据循环运行的次数可以准确计算出经历的时长,再加上通过步骤202已经确定出各个故障检测单元的检测周期,这样,就不需要再设置定时器,用于确定各个故障检测单元进行故障检测的时机,而是利用统一的故障检测中心的运行次数进行相应的时长判断,从而判决在何时需要对哪个故障检测点进行故障检测。
[0035]当故障检测中心确定出一故障检测单元的检测周期条件已满足时,则故障检测中心通知相应的故障检测单元进行故障检测。如果前述利用步骤202获取到各故障检测单元的故障状态获取接口,则这里进行故障检测通知时,可以直接利用相应的故障状态获取接口调用相应的故障检测函数(即故障检测单元的具体故障检测处理)进行故障检测。当然,也可以通过其他方式通知故障检测单元,本申请对此不作限定。
[0036]步骤204,在故障检测单元进行故障检测后,故障检测中心接收故障检测单元上报的故障检测结果。
[0037]故障检测单元可以按照现有方式进行故障检测,并确定出故障检测结果上报给故障检测中心。
[0038]步骤205,根据故障检测单元上报的故障检测结果,按照故障检测点的故障状态判决条件判定故障检测点的当前状态,当任一故障检测点的当前状态为故障时向用户告警。
[0039]为避免一次故障检测中的检测误差等,可以设置故障判决条件,例如平滑周期。一般地,会设置当连续多次故障检测结果均诊断为故障时,判定相应故障检测点出现故障;同理,在进入故障状态后,也可以设置当连续多次故障检测结果均诊断为正常时,判定相应故障检查点的故障已恢复。
[0040]如果前述利用步骤202获取到各故障检测点的故障状态判决条件,则这里接收到故障检测单元上报的故障检测结果后,可以根据相应的故障状态判决条件判定相应故障检测点的当前状态。当然,也可以通过其他方式获取故障状态判决条件,用于判定故障检测点的当前状态,本申请对此不作限定。
[0041]当根据故障状态判决条件确定某故障检测点的当前状态出现反转,例如由正常变为故障,或者由故障变为正常,故障检测中心向用户提供相应的信息变化。其中,当前状态为故障时,通过告警形式将信息提供给用户;当前状态变为正常时,向用户提示告警恢复的信息。
[0042]其中,如果前述利用步骤202获取到各故障检测单元的故障上报接口,则这里确定某故障检测点的当前状态为故障时,可以利用故障上报接口将故障状态信息上报给故障处理中心,由故障处理中心将相应故障检测点的故障状态通过告警形式呈现给用户。当然,也可以通过其他方式向用户进行故障状态的告警,本申请对此不作限定。
[0043]至此,本申请中的方法流程结束。
[0044]在上述方法流程中,系统启动时,各个模块分别向故障检测中心(自处理任务实现)订阅各个告警的检测,订阅时分别提供检测周期、平滑周期、故障类型、故障上报接口、故障状态获取接口等。故障检测中心在系统运行过程中自动判别满足检测条件的告警,然后回调相应的检测函数判断是否故障。经过相应的平滑处理后再回调相应的告警发送函数将告警发送到故障管理中心,由故障管理中心完成告警的上报。
[0045]由上述可见,本申请中为了确保不影响其它任务的正常运行,故障检测在自处理任务中进行。以自处理任务的循环间隔代替定时器,从而使其他任务可以在自处理任务的中断时间内执行。
[0046]同时,还可以进一步设置自处理任务优先级为较低优先级,低于其它功能模块和业务模块。这样当自处理任务运行过程中,如果较高优先级的任务需要运行时,自处理任务会释放自己的处理权给其它任务,从而保证了其它任务的运行。通过上述方式,避免了耗费过多的系统资源运行众多的定时器,并尽可能为系统中的其他任务提供更多的处理时间,大大提闻了系统性能。
[0047]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种告警检测方法,其特征在于,包括: 创建以预设的循环间隔为周期循环运行的自处理任务,作为故障检测中心;为系统中的各个故障检测点设置相应的故障检测单元,用于进行相应故障检测点的故障检测; 所述故障检测中心根据自身循环运行的次数确定时长,并按照各个故障检测单元的检测周期,通知各个故障检测单元对相应的故障检测点进行故障检测; 所述故障检测中心接收各个故障检测单元上报的故障检测结果,并按照相应故障检测点的故障状态判决条件判定所述故障检测点的当前状态,当任一故障检测点的当前状态为故障时向用户告警。
2.根据权利要求1所述的方法,其特征在于,所述故障检测中心获取各个故障检测单元的检测周期和相应故障检测点的故障状态判决条件的方式为:所述各个故障检测单元向所述故障检测中心上报故障检测信息,包括故障检测单元的检测周期和相应故障检测点的故障状态判决条件。
3.根据权利要求1或2所述的方法,其特征在于,所述故障状态判决条件包括平滑周期。
4.根据权利要求1或2所述的方法,其特征在于,所述故障检测中心的处理优先级低于系统中的业务1旲块和功能1旲块。
5.根据权利要求2所述的方法,其特征在于,所述故障检测单元上报的故障检测信息包括:故障状态获取接口和故障上报接口 ; 所述通知各个故障检测单元对相应的故障检测点进行故障检测包括:所述故障检测中心利用各个故障检测单元上报的故障状态获取接口,调用相应故障检测点的检测函数进行所述故障检测; 所述向用户告警包括:所述故障检测中心利用各个故障检测单元上报的故障上报接口,将相应故障检测点的故障状态上报给故障处理中心,所述故障处理中心将所述故障状态通过告警形式提供给用户。
6.根据权利要求1或2所述的方法,其特征在于,各个故障检测单元的检测周期为所述循环间隔的整数倍。
【文档编号】G06F11/36GK103678095SQ201210321520
【公开日】2014年3月26日 申请日期:2012年9月3日 优先权日:2012年9月3日
【发明者】刘敬强, 杨彬, 雷玲, 白宏伟, 纪志祥 申请人:鼎桥通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1