具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面结合说明书附图,对本发明实施例提供的一种指标数据的监测方法、装置及服务器的具体实施方式进行详细说明。
本发明实施例提供的一种指标数据的监测方法,如图1所示,具体包括以下步骤:
S11、实时地将获取的指标数据放入设定的队列中;
S12、判断队列是否已满;若是,执行S13,否则,转向S11;
S13、根据队列中各指标数据所处的级别,确定所述队列当前所处的级别;
S14、根据确定出的队列当前所处的级别与所记录的前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照所述策略指定的方式进行告警。
下面分别对上述各步骤进行详细的说明。
上述S11中,队列的大小预先设定,例如将队列的大小预设为3,即能够容纳3个指标数据,当然,本发明实施例中对队列的大小不做限定。
上述S13中,各指标数据所处的级别,可以通过下述方式确定:
将各指标数据与预设的各级别对应的上限阈值和/或下限阈值进行比较,确定各指标数据所处的级别。
指标数据的正常变化趋势,可以是下降趋势(即指标数据随着时间越来越小,则变化趋势是正常的),也可能是上升趋势(指标数据随着时间越来越大,则变化趋势是正常的),各级别对应的上限和/或下限阈值的确定,与指标数据的正常变化趋势有密切关系,举例来说,假设预先设定四个级别:正常级别、轻微级别、严重级别、紧急级别,四个级别的上限/下限阈值分别为:70、80、90;那么小于70的数据是正常级别;大于等于70并且小于80的数据是轻微级别;大于等于80并且小于90的数据是严重级别;大于等于90的数据是紧急级别。
这样,根据指标数据与这些级别的上限和/或下限阈值进行比较,确定该指标数据所处的数值区间,就可以确定该指标数据所处的级别,例如指标数据的大小为85,则指标数据所处级别为严重。
进一步地,上述S13中,如图2所示,可以通过下述方式来确定队列当前所处的级别:
S21、比较队列中每个指标数据所处的级别与所记录的前一个队列所处级别;
在本发明实施例中,设定级别的高低与发生异常的严重程度正相关,也就是说,指标数据所处的级别越高,则表示该指标数据的异常程度越严重。
S22、若队列中每个指标数据所处的级别均高于前一个队列所处的级别时,确定队列的级别为队列中指标数据所处的最低级别;
S23、若队列中每个指标数据所处的级别均低于前一个队列所处的级别时,确定队列的级别为队列中指标数据所处的最高级别;
S24、否则,确定队列所处的级别与前一个队列的所处的级别相等。
还是以正常级别、轻微级别、严重级别、紧急级别这四个级别为例,不论指标数据的变化趋势如何,假设前一个队列所处的级别为轻微级别,如果本队列中所有指标数据所处的级别分别为严重级别、严重级别、紧急级别,则本队列当前所处的级别为严重级别;如果本队列中所有指标数据所处的级别分别为轻微级别、严重级别、严重级别,则本队列当前所处的级别为轻微级别;如果本队列中所有指标数据所处的级别分别为正常级别、正常级别、正常级别,则本队列当前所处的级别为正常级别;如果本队列中所有指标数据所处的级别分别为轻微级别、正常级别、正常级别,则本队列当前所处的级别为轻微级别。
确定了队列当前所处的级别之后,S14中,就可以根据确定出的队列当前的级别与所记录的前一个队列所处的级别,和预设的策略,确定是否需要告警以及在需要告警时采用策略指定的方式进行告警。
将队列的级别设置为多个级别,这多个级别分别为:正常级别和至少一个非正常级别,非正常级别正如上面的例子,可以根据情况进一步分为多个级别,例如轻微级别、严重级别、紧急级别等等,但是,需要说明的是,在本发明实施例提供的指标数据的监测方法中,指标数据或者队列所处的级别,并不限于上述例子中所述的正常级别、轻微级别等具体的级别的设置,可以根据需要,设置以数字、字符等代表等级大小的各类级别,各级别从低到高依次表示指标数据正常情况、各种程度的指标数据异常情况等等即可,本发明实施例对此不做具体的限定。
该设定的队列会因为不断放入实时的指标数据而不断地更新,因为队列的大小是设定的,因此每放入一个新的指标数据,会挤出最前面的旧数据,整个队列就会更新一次。每放入一个新的指标数据,队列发生更新时,都需要判定一下该队列当前所处的级别,这样,上述S14中,所记录的前一个队列所处的级别,是指相对于当前的队列来说,在放入新的指标数据之前的那个队列所处的级别,具体判定方式参照前述说明。
当前的队列就是对前一个队列在队列尾部放入一个新的指标数据并删除队列首部的一个指标数据得到的队列,前一个队列与当前队列存在一个指标数据的差异。在确定出当前队列所处的级别后,对当前队列所处的级别进行记录。队列再次更新时,则更新前的当前队列会成为新的前一个队列,更新前记录的当前队列所处的级别成为新的前一个队列所处的级别,如此循环持续监测其他的指标数据。
具体来说,根据确定出的队列当前的级别与所记录的前一个队列所处的级别,分为下面几种情况:
1)若队列当前所处的级别与前一个队列所处的级别相等,则确定不需要进行告警;
队列当前所处的级别与前一个队列所处的级别相等,一种情况为两者所处的级别均为正常,则不需要进行告警。
另一种情况为两者所处的级别均为非正常级别,比如轻微级别、严重级别、紧急级别等等,这样的话,还可以执行下述操作:判断数据库中存储的队列的极值是否为空,如果为空,则需要根据数据正常的变化趋势,将当前队列中的最大值或者最小值作为极值存储于数据库中。
队列的极值的大小可以反映出当前数据的异常情况,假设数据正常的变化趋势是上升趋势,则应该将当前队列中最小值(即偏离正常情况最远的那个数据)作为极值存储在数据库中,反之,将当前队列中最大值作为极值存储在数据库中。
如果数据库中存储的队列的极值不为空(之前已经存储过),则根据数据的正常的变化趋势,将当前队列中最大值或最小值与数据库中记录的极值进行比较,根据数据正常的变化趋势,确定是否更新所述极值,并在确定需要时,使用当前队列中的最大值或者最小值更新存储的极值。
具体来说,如果数据的正常趋势是上升趋势,则将当前队列中的最小值与存储的极值进行比较,当当前队列中的最小值小于存储的极值时,使用当前队列中的最小值更新该存储的极值,当当前队列中的最小值大于等于存储的极值时,维持数据库中存储的极值不变。
反之,如果数据的正常趋势是下降趋势,则将当前队列中的最大值与存储的极值进行比较,当当前队列中的最大值大于存储的极值时,使用当前队列中的最大值更新该存储的极值,当当前队列中的最大值小于等于存储的极值时,维持数据库中存储的极值不变。
举例来说,假设当前数据库中记录的极值为89,队列当前所处的级别为严重,数据正常的变化趋势是下降趋势,队列中三个指标数据的值为89.1,89.2,89.3,则从三个指标数据中选出最大值,与数据库中记录的极值89进行比较,由于89.3大于89,则用89.3更新数据库中的值。
较佳地,上述数据库中存储的极值,可以作为某个设定的指标实时呈现给用户,举例来说,例如在向用户呈现流量实时变化曲线的同时,向用户显示本时间段内的流量最高峰值等设定的指标。
由于队列当前所处的级别与前一个队列所处的级别相等,数据库中记录有队列当前所处的级别,此时不需要更新数据库中记录的队列当前的级别。
2)若队列当前所处的级别低于前一个队列所处的级别,且队列当前的级别为非正常级别,则确定不需要进行告警,否则,判断是否已进行过告警,若已告警,输出取消告警的信息;
在这种情况下,当前队列的数据异常的程度要低于前一个队列(数据异常程度在好转),那么,类似地,如果当前级别为非正常级别,例如轻微级别、严重级别等等,则需要使用队列当前所处的级别更新数据库中之前记录的队列当前所处的级别(即上个队列所处的级别);
如果当前的级别为正常级别,则需要查询是否进行过告警,如果进行过告警,需要输出告警取消的消息,举例来说,通过从数据库中读取用于记录是否已发送告警邮件的字段值或用于记录是否已发送告警短信的字段值来确定是否发送过告警;
若已发送过告警邮件,则输出告警结束邮件;
若已发送过告警短信,则输出告警结束短信。
假设从数据库中读取的是否已经发送告警邮件字段值为1(即表征已发送告警邮件),则发送报警结束邮件,从数据库中读取的是否已经发送告警短信的字段值为1(即表征已发送告警短信),则发送报警结束短信。
3)若队列当前所处的级别高于前一个队列所处的级别,则根据队列当前所处非正常级别、以及至少一个非正常级别中各级别预设的告警策略确定是否告警以及对应的告警方式。
在这种情况下,当前队列的数据异常的程度要高于前一个队列(数据异常程度在恶化),则需要使用队列当前所处的级别更新数据库中之前记录的队列当前所处的级别(即上个队列所处的级别);
假设非正常级别包括下面三个级别(当然不限于下面三个级别):轻微级别、严重级别、紧急级别;下面分别针对这几种情况进行详细说明:
1)当队列当前所处的级别为轻微级别时,不进行告警;
在队列当前所处的级别为轻微级别时,虽然不进行告警,但还可以参考数据的正常变化趋势,对数据库中的极值进行调整,具体的调整方式与前述队列当前所处的级别与前一个队列所处的级别相等且均为非正常级别的情况下的调整方式相似,在此不再赘述。
2)当队列当前所处的级别为严重级别时,发送告警邮件,并更新数据库中用于记录是否已发送告警邮件的字段值;
在队列当前所处的级别为严重级别时,类似地,还可以参考数据的正常变化趋势,对数据库中的极值进行调整,具体的调整方式与前述相似,在此不再赘述。
更新数据库中用于记录是否已发送告警邮件的字段值,例如更新数据库用于记录是否已发送告警邮件的字段值为1(表征已发送告警邮件)。
3)当队列当前所处的级别为紧急级别时,发送告警短信,并更新数据库中用于记录是否已发送告警短信的字段值。
在队列当前所处的级别为紧急级别时,类似地,还可以参考数据的正常变化趋势,对数据库中的极值进行调整,具体的调整方式与前述相似,在此不再赘述。
更新数据库中用于记录是否已发送告警短信的字段值,例如更新数据库用于记录是否已发送告警短信的字段值为1(表征已发送告警邮件)。同时,从数据库中读取是否已经发送告警邮件的字段值,若为0(表征未发送告警短信),则发送告警邮件,然后将是否已经发送告警邮件的字段值修改为1。
由于指标数据需要实时地进行监测,本发明实施例提供的上述指标数据的监测方法,在上述步骤S11~S13之后,如图3所示,还可以包括执行下述步骤:
S15、删除队列的首个指标数据;
然后再重复执行S11~S14即实时地将获取的指标数据放入到队列之中,并将其排在未删除的指标数据之后,然后当队列已满时,确定队列当前所处的级别,以及根据队列当前所处的级别与所记录的前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照策略指定的方式进行告警的步骤。
删除队列的首个指标数据,并且再将一个新的指标数据放入到队列尾部的目的就在于在保证队列的长度不变的同时不断更新队列,并且在每次更新后,都判断一下队列当前所处的级别,并根据队列当前所处的级别与前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照策略指定的方式进行告警。
基于同一发明构思,本发明实施例还提供了一种指标数据的监测装置及服务器,由于这些装置和服务器所解决问题的原理与前述指标数据的监测方法相似,因此该装置和服务器的实施可以参见前述方法的实施,重复之处不再赘述。
如图4所示,本发明实施例提供的一种指标数据的监测装置,包括:
队列处理模块401,用于实时地将获取的指标数据放入设定的队列中;
队列级别确定模块402,用于当队列已满时,根据队列中各指标数据所处的级别,确定队列当前所处的级别;
告警处理模块403,用于根据确定出的队列当前所处的级别与所记录的前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照策略指定的方式进行告警。
进一步地,上述指标数据的监测装置中的队列级别确定模块402,具体用于将各指标数据与预设的各级别对应的上限阈值和/或下限阈值进行比较,确定各指标数据所处的级别。
进一步地,上述指标数据的监测装置中的队列级别确定模块402,具体用于比较队列中每个指标数据所处的级别与所述前一个队列所处级别;级别的高低与发生异常的严重程度正相关;若队列中每个指标数据所处的级别均高于前一个队列所处的级别时,确定队列的级别为队列中指标数据所处的最低级别;若队列中每个指标数据所处的级别均低于前一个队列所处的级别时,确定队列的级别为队列中指标数据所处的最高级别;否则,确定队列所处的级别与前一个队列的所处的级别相等。
进一步地,指标数据或队列的级别为下述级别中的一个:正常级别、至少一个非正常级别;至少一个非正常级别高于正常级别;
相应地,告警处理模块403,进一步用于若队列当前所处的级别与前一个队列所处的级别相等,则确定不需要进行告警;若队列当前所处的级别低于前一个队列所处的级别,且队列当前所处的级别为非正常级别,则确定不需要进行告警,否则,判断是否已进行过告警,若已告警,输出取消告警的信息;若队列当前所处的级别高于前一个队列所处的级别,则根据队列当前所处非正常级别、以及所述至少一个非正常级别中各级别预设的告警策略确定是否告警以及对应的告警方式。
进一步地,本发明实施例提供的指标数据的监测装置,如图4所示,还包括:更新模块404,用于若队列当前所处的级别与前一个队列所处的级别不相等,使用队列当前所处的级别更新数据库所记录的前一个队列所处的级别。
进一步地,上述告警处理模块403,进一步用于通过从数据库中读取用于记录是否已发送告警邮件的字段值或用于记录是否已发送告警短信的字段值来确定是否发送过告警;若已发送过告警邮件,输出告警结束邮件;若已发送过告警短信,输出告警结束短信。
进一步地,上述至少一个非正常级别包括:轻微级别、严重级别、紧急级别;
相应地,上述告警处理模块403,进一步用于当队列当前所处的级别为轻微级别时,不进行告警;当队列当前所处的级别为严重级别时,发送告警邮件,并更新数据库中用于记录是否已发送告警邮件的字段值;当队列当前所处的级别为紧急级别时,发送告警短信,并更新数据库中用于记录是否已发送告警短信的字段值,并在未发送过告警邮件时,发送告警邮件。
进一步地,本发明实施例提供的指标数据的监测装置中的更新模块404,还用于若队列当前所处的级别与前一个队列所处的级别均为非正常级别,以及若队列当前所处的级别高于前一个队列所处的级别,当数据库中存储的队列的极值为空时,根据数据的正常的变化趋势,将当前队列中的最大值或者最小值作为所述极值存储于数据库中;或者根据数据的正常的变化趋势,将当前队列中最大值或最小值与数据库中记录的极值进行比较,并根据所述数据正常的变化趋势,确定是否更新所述极值,并在确定需要时,使用当前队列中的最大值或者最小值更新存储的极值。
进一步地,上述队列处理模块401,还用于删除所述设定的队列的首个指标数据;将后续获取的一个指标数据放入设定的队列中并排在未删除的指标数据之后,当所述队列已满时,重复确定所述队列当前所处的级别,以及根据队列当前所处的级别与所记录的前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照所述策略指定的方式进行告警的步骤。
本发明实施例提供的服务器,该服务器包括本发明实施例提供的上述指标数据的监测装置。
本发明实施例提供的指标数据的监测方法、装置及服务器,将指标数据实时地放入设定的队列中,只有当队列满的时候,依据该队列中每个指标数据的级别,确定整个队列所处的级别,然后根据确定出的队列当前所处的级别,与所记录的前一个队列所处的级别,以及预设的策略,确定是否需要告警以及在需要告警时按照该策略指定的方式进行告警,这样,采用整个队列进行分析的方式,而不是采用逐个指标数据进行分析的方式,可以避免现有技术中,由于指标数据自身可能会不正确导致的误告警的问题,另外一方面,也避免了告警过于频繁和过度浪费告警资源的问题。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的指标数据的监测装置及服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。