自学习的变频监控方法、系统、电子设备和存储介质转让专利

申请号 : CN202210116131.0

文献号 : CN114138617B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王玉虎马骏

申请人 : 杭州朗澈科技有限公司

摘要 :

本发明涉及一种自学习的变频监控方法、系统、电子设备和存储介质,所述方法包括:获取监控频率,根据所述监控频率分别对多项运行指标进行采集,获取监控数据;对所述监控数据进行分析得出预测结果,所述预测结果用于指示是否即将发生异常事件;判断在所述预设时间范围内是否接收到异常事件;若所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内未接收到异常事件,则降低监控频率。本发明的方法通过收集监控数据和对应时间产生的事件共同学习,最终在计算机系统稳定运行且没有异常的时候,逐步降低监控频率,从而避免资源的浪费,最终达到节省磁盘空间、算力和电能的目的。

权利要求 :

1.一种自学习的变频监控方法,其特征在于,所述方法包括:

获取监控频率,根据所述监控频率分别对多项运行指标进行采集,获取监控数据;

对所述监控数据进行分析得出预测结果,所述预测结果用于指示是否即将发生异常事件;其中,获取每一所述异常事件的发生标准;判断多项所述运行指标的监控数据是否符合所述异常事件的发生标准;若符合,则预测结果指示即将发生异常事件;若不符合,则预测结果指示即将不发生异常事件;所述发生标准通过预先建立的自学习模型确定;

若所述预测结果指示即将发生异常事件,则提高所述监控频率;若所述预测结果指示不会即将发生异常事件,则判断在预设时间范围内是否接收到异常事件;

若所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内未接收到异常事件,则降低监控频率;若所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内接收到异常事件,则提高监控频率。

2.根据权利要求1所述的变频监控方法,其特征在于,若所述预测结果指示即将发生异常事件,则所述方法还包括:获取预先设置的最低监控频率、最高监控频率和即将发生的异常事件的发生概率;

根据所述发生概率、最低监控频率和最高监控频率计算的结果提高所述监控频率。

3.根据权利要求1所述的变频监控方法,其特征在于,所述降低监控频率包括:按照预设步长降低监控频率,根据降低后的监控频率继续采集监控数据,在重新获取的预测结果指示不会即将发生异常事件,且下一个预设时间范围内没有接收到异常事件,则继续按照预设步长降低监控频率,直到从预设的初始监控频率降到预设的最低监控频率。

4.根据权利要求1所述的变频监控方法,其特征在于,所述方法还包括:根据所述监控数据和预测结果生成告警信息,并将所述告警信息发送给用户。

5.根据权利要求2所述的变频监控方法,其特征在于,所述异常事件的发生标准和发生概率通过预先建立的自学习模型确定,所述自学习模型的建立包括:分析历史监控数据,得出各异常事件发生时的发生标准;

获取实时监控数据,根据所述发生标准得出预测结果,其中,所述预测结果用于指示是否即将发生异常事件;

验证所述预测结果是否准确,并根据验证结论调整所述发生标准和异常事件的发生概率。

6.根据权利要求5所述的变频监控方法,其特征在于,所述并根据验证结论调整所述发生标准和异常事件的发生概率,包括:若所述预测结果指示不会即将发生异常事件,且验证结果错误,则将所述异常事件的发生概率增大或设置为初始发生概率,并根据所述监控数据确定所述异常事件的发生标准;

若所述预测结果指示即将发生异常事件,且验证结果准确,则增大所述异常事件的发生概率,并根据所述监控数据更新所述异常事件的发生标准;

若所述预测结果指示即将发生异常事件,且验证结果错误,则减小所述异常事件的发生概率。

7.一种自学习的变频监控系统,其特征在于,所述系统包括:

监控模块,用于获取监控频率,根据所述监控频率分别对多项运行指标进行采集,获取监控数据;

学习模块,用于对所述监控数据进行分析得出预测结果,所述预测结果用于指示是否即将发生异常事件;其中,获取每一所述异常事件的发生标准;判断多项所述运行指标的监控数据是否符合所述异常事件的发生标准;若符合,则预测结果指示即将发生异常事件;若不符合,则预测结果指示即将不发生异常事件;所述发生标准通过预先建立的自学习模型确定;

事件采集模块,用于判断在预设时间范围内是否接收到异常事件;

监控频率制定模块,用于在所述预测结果指示即将发生异常事件,则提高所述监控频率;在所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内未接收到异常事件的情况下,降低监控频率;在所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内接收到异常事件,则提高监控频率。

8.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的自学习的变频监控方法。

9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6中任一项所述的自学习的变频监控方法。

说明书 :

自学习的变频监控方法、系统、电子设备和存储介质

技术领域

[0001] 本发明涉及计算机监控技术领域,特别是涉及自学习的变频监控方法、系统、电子设备和存储介质。

背景技术

[0002] 在当前的计算机领域中,特别是云计算微服务时代,为了保证程序正常运行,通过监控系统对程序和对程序运行的数据进行实时监控和数据收集,从而能够及时发现、甚至是提前发现计算主机故障。
[0003] 为了实现对计算主机的排查,监控系统需要收集的监控指标少则几十项,多则几百上千项,比如CPU的使用率、内存使用率、存储使用率、IO使用情况、网络速率、程序运行占用的CPU和内存、程序暴露的各自监控指标(链接数,线程数等)等,在现有技术中,监控系统的采集时间间隔(即监控频率)基本上是固定的,比如5秒、10秒等。
[0004] 这些监控指标虽然方便人们排查问题、了解当前的运行状态,但由于系统在大多数情况下是正常运行的,用户在查看主机前一段时间的运行数据时,有可能看到的只是一条直线,因此这些数据大部分是没用的,没有分析和参考意义;但如果降低了计算主机的监控频率,即把数据采集的时间间隔拉长,则又有可能丢失监控内容,无法进行故障排查。因此,现有的计算主机监控技术由于长时间以较低的监控频率频繁采集数据,不仅自身会消耗大量计算资源和电能,造成资源的浪费;同时,采集到的数据还占用了大量的存储空间,增加了监控成本。

发明内容

[0005] 针对现有技术存在的不足,本发明实施例提供了一种自学习的变频监控方法、系统、电子设备和存储介质,以至少解决现有技术中监控频率固定而导致资源浪费和监控成本高的问题。
[0006] 第一方面,本发明实施例提供了一种自学习的变频监控方法,所述方法包括:
[0007] 获取监控频率,根据所述监控频率分别对多项运行指标进行采集,获取监控数据;
[0008] 对所述监控数据进行分析得出预测结果,所述预测结果用于指示是否即将发生异常事件;
[0009] 判断在预设时间范围内是否接收到异常事件;
[0010] 若所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内未接收到异常事件,则降低监控频率。
[0011] 进一步,所述对所述监控数据进行分析获取预测结果,包括:
[0012] 获取每一所述异常事件的发生标准;
[0013] 判断多项所述运行指标的监控数据是否符合所述异常事件的发生标准;
[0014] 若符合,则预测结果指示即将发生异常事件;若不符合,则预测结果指示即将不发生异常事件。
[0015] 在其中一些实施例中,若所述预测结果指示即将发生异常事件,则所述方法还包括:
[0016] 获取预先设置的最低监控频率、最高监控频率和即将发生的异常事件的发生概率;
[0017] 根据所述发生概率、最低监控频率和最高监控频率计算的结果提高所述监控频率。
[0018] 进一步,所述降低监控频率还包括:
[0019] 按照预设步长降低监控频率,根据降低后的监控频率继续采集监控数据,在重新获取的预测结果指示不会即将发生异常事件,且下一个预设时间范围内没有接收到异常事件,则继续按照预设步长降低监控频率,直到从预设的初始监控频率降到预设的最低监控频率。
[0020] 进一步,则所述方法还包括:根据所述监控数据和预测结果生成告警信息,并将所述告警信息发送给用户。
[0021] 进一步,所述异常事件的发生标准和发生概率通过预先建立的自学习模型确定,所述自学习模型的建立包括:
[0022] 分析历史监控数据,得出各异常事件发生时的发生标准;
[0023] 获取实时监控数据,根据发生标准得出预测结果,预测结果用于指示是否即将发生异常事件;
[0024] 验证预测结果是否准确,并根据验证结论调整所述发生标准和异常事件的发生概率。
[0025] 进一步,所述并根据验证结论调整所述发生标准和异常事件的发生概率,包括:
[0026] 若所述预测结果指示不会即将发生异常事件,且验证结果错误,则将所述异常事件的发生概率设置为初始发生概率,并根据所述监控数据确定所述异常事件的发生标准;
[0027] 若所述预测结果指示即将发生异常事件,且验证结果准确,则增加所述异常事件的发生概率,并根据所述监控数据确定所述异常事件的发生标准;
[0028] 若所述预测结果指示即将发生异常事件,且验证结果错误,则减小所述异常事件的发生概率。
[0029] 第二方面,本发明实施例提供了一种自学习的变频监控系统,所述系统包括:
[0030] 监控模块,用于获取监控频率,根据所述监控频率分别对多项运行指标进行采集,获取监控数据;
[0031] 学习模块,对所述监控数据进行分析得出预测结果,所述预测结果用于指示是否即将发生异常事件;
[0032] 事件采集模块,判断在所述预设时间范围内是否接收到异常事件;
[0033] 监控频率制定模块,若所述预测结果指示不会即将发生异常事件,且在所述预设时间范围内未接收到异常事件,则降低监控频率。
[0034] 第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行以上实施例任一项所述的自学习的变频监控方法。
[0035] 第四方面,本发明实施例提供了一种一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以上实施例任一项所述的自学习变频监控方法。
[0036] 相比于相关技术,本发明实施例提供的,本发明的目的在于提供一种自学习方式的监控方法,该方法通过收集监控数据和对应时间产生的事件共同学习,最终在计算机系统稳定运行且没有异常的时候,逐步降低监控频率,从而避免资源的浪费,最终达到节省磁盘空间、算力和电能的目的。当系统快要出现异常的时候,根据可能出现的异常事件的发生概率来提高监控频率,不仅能够避免丢失监控内容,达到精准采样的目的;还能够通过发生告警信息通知用户即将要发生的异常事件,使得用户及时处理,避免异常事件的发生。

附图说明

[0037] 此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0038] 图1是根据本发明一实施例自学习的变频监控方法的流程图;
[0039] 图2是根据本发明一实施例自学习模块的流程图;
[0040] 图3是根据本发明一实施例自学习的变频监控系统的结构示意图。

具体实施方式

[0041] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本发明公开的内容相关的本领域的普通技术人员而言,在本发明揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本发明公开的内容不充分。
[0042] 在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本发明所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0043] 除非另作定义,本发明所涉及的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。本发明所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本发明所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本发明所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本发明所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0044] 本发明提供一种自学习的变频监控方法,通过对收集监控数据和对应时间产生的异常事件进行分析和学习,能够在系统没有异常的时候,降低监控频率;在系统快要出现异常的时候,把监控频率提高,不仅能够节省磁盘空间和算力,还能实现对系统进行精准监控。
[0045] 本发明一实施例的变频监控方法具体如图1所示,在监控开始之前,需要对本发明的监控程序进行一个初步的参数设置,这些参数的数值是根据用户的经验和计算机系统的特性确定,具体包括:初始监控频率r0、最高监控频率r1、最低监控频率r2、预设步进s和预设概率步进p,并设置当前的监控频率r=r0,这些参数保存在数据库中,可以随时调用。
[0046] 在监控过程中,首先获取监控频率r,若计算机系统刚开始运行,则按照初始监控频率r0对需要监控的节点进行数据采集,为了一开始就不遗漏信息,本发明的初始监控频率r0较高,如5秒/次,然后根据该监控频率分别对多项运行指标进行采集,获取监控数据。本发明的运行指标可以根据用户的需求设定,在通常情况下,运作指标少则有几十项,多则有几百上千项,比较常见的如:CPU的使用率、内存使用率、存储使用率、IO使用情况、网络速率、程序运行占用的CPU或内存等、程序暴露的各自监控指标(如链接数、线程数等),由于数量较大,这里就不一一列举了。每一项运行指标的监控数据通过运行在各个主机上的采集程序进行采集,本发明可以直接从采集程序中直接读取所需要的数据。
[0047] 对监控数据进行分析和学习得出预测结果,该预测结果用于指示是否即将发生异常事件。本发明实施例主要根据以下步骤对监控数据进行分析:获取每一种异常事件的发生标准;判断多项运行指标的监控数据是否符合异常事件的发生标准,异常事件的发生标准可以是通过自学习获得的,即通过对大量历史数据进行分析学习,能够得到异常时间发生时每一项运行指标的监控数据的值所在的阈值范围。若符合,即这些监控数据都在阈值范围内,则预测结果指示即将发生异常事件;若不符合,即有任一项监控数据不在阈值范围内,则预测结果指示即将不发生异常事件。
[0048] 在本发明的另一实施例中,还可以计算每一项运行指标的监控数据的波动值,采用波动值与异常事件的发生标准(此时的发生标准可以是通过对每一运行指标的历史波动值进行学习获得)进行判断。本实施例的波动值是通过计算每一项监控数据的峰值与平均值的差获得,不同运行指标的波动值分开计算。具体地,先获取监控数据的平均值,然后从该项监控数据中提取峰值,用该峰值减去平均值即可得到该项运行指标的波动值。在其他实施例中,也可以通过计算每一项监控数据的极差、方差、标准差或斜率作为波动值。遍历计算每一项运行指标的波动值后,将运行指标的波动值与各个异常事件发生标准进行匹配,即判断多项运行指标的波动值是否符合各个异常事件的发生标准。若符合,即只要找到运行指标满足任意一个异常事件的发生标准,则预测结果指示即将发生异常事件;若不符合,即运行指标的波动值则预测结果指示即将不发生异常事件。
[0049] 在对监控数据分析完成并获取到相应的预测结果后,还要获取一预设时间,然后判断在接下来的预设时间范围内是否接收到任何一种异常事件,如系统死机、程序崩溃、内存无法分配或其他程序自有事件等。异常事件的获取可以通过直接读取计算主机上的错误或读取其他管理面的信息(比如在kubernetes中,读取apiserver的事件等)。
[0050] 根据以上的预测结果和判断结果,可以分为四种情况对监控频率进行调整。
[0051] 其一,若预测结果指示不会即将发生异常事件,且在预设时间范围内未接收到异常事件,说明此时计算机系统正稳定运行,若按照较高的频率进行监控,获取的数据不仅没有分析意义,还浪费了大量的电能、计算资源和存储控制,因此需要按照公式(1)降低监控频率。
[0052]                                  (1)
[0053] 即是在当前的监控频率r的基础上加上预设步长,作为新的监控频率。比如,当前监控频率为5秒/次,预设步长为2秒/次,则当预测结果指示不会即将发生异常事件,且在预设时间范围内未接收到异常事件时,按照预设步长降低监控频率,即按照7秒/次的频率来对计算机系统进行监控。
[0054] 在正常情况下,计算机系一般都是在稳定工作状态,因此当按照预设步长降低监控频率,根据降低后的监控频率(如7秒/次)继续采集监控数据,在重新获取的预测结果还是指示不会即将发生异常事件,且下一个预设时间范围内也没有接收到异常事件,则继续按照预设步长降低监控频率。在符合要求的情况下一直重复上述过程,直到从预设的初始监控频率r0降到预设的最低监控频率r2(比如5分钟/次)。或者,若当计算得到的监控频率大于最低监控频率,则还是按照最低监控频率进行监控,即监控频率不会再继续降低,避免因监控频率过低而丢失监控内容,从而导致出现异常事件而不能提前预测。
[0055] 其二,若预测结果指示不会即将发生异常事件,且在预设时间范围内接收到了任意一种异常事件,说明此时计算机系统存在异常的运行指标且预测结果不准确,为了获得更准确的预测结果,因此需要按照公式(2)提高监控频率。
[0056]                                   (2)
[0057] 即是在当前的监控频率r的基础上减去预设步长,作为新的监控频率。比如,当前监控频率为5秒/次,预设步长为2秒/次,则当预测结果指示不会即将发生异常事件,且在预设时间范围内接收到了任意一种异常事件时,按照预设步长提高监控频率,即按照3秒/次的频率来对计算机系统进行监控。或者,获取初始监控频率,直接将当前的监控频率更新为初始监控频率,按照初始监控频率继续监控。
[0058] 当按照预设步长提高监控频率,根据提高后的监控频率(如3秒/次)继续采集监控数据,在重新获取的预测结果还是指示不会即将发生异常事件,且下一个预设时间范围内还是接收到了异常事件,则继续按照预设步长提高监控频率。在符合要求的情况下一直重复上述过程,直到从某个监控频率降到预设的最高监控频率r1(比如1秒/次)。或者,若当计算得到的监控频率小于最高监控频率,则还是按照最高监控频率进行监控,即监控频率不会再继续提高,避免因监控频率过高而导致数据所占内存过多和成本过高等问题。
[0059] 其三,若本次的预测结果指示即将发生某个或者多个异常事件,则需要先提高监控频率,并根据提高后的监控频率获取监控数据,从而能够更准确的分析出即将发生的异常事件的准确时间点,通过告警程序将(如预测结果)发送给用户,用户可以根据告警信息提前作好相应的准备或调整。当预测结果指示即将发生异常事件时,为了达到精确采样的目的,本发明实施例是根据以下步骤提高监控频率:
[0060] 首先获取预先设置并保证在存储器中的最低监控频率r2、最高监控频率r1和即将发生的异常事件的发生概率P;然后将发生概率、最低监控频率和最高监控频率代入公式(3)中进行计算,得到提高的监控频率r的具体值。
[0061]                         (3)
[0062] 每一种异常事件的发生概率P是通过自学习模型确定的,在计算监控频率时可以直接提取。若预测结果指示有多个异常事件发生,则获取这多个异常事件的发生概率并生成事件列表List,并将多个异常事件的发生概率(P1,P2,……,Pn)进行比较,选择其中最大的发生概率代入公式(3)进行计算,根据该计算结果对计算机系统进行监控。
[0063] 在获取事件列表List和提高监控频率后,先控制监控程序在预设时间(如10分钟)按照公式(3)计算得到的监控频率对计算机系统进行监控,并实时判断在这10分钟内是否发生异常事件,若在这10分钟内没有发生任何异常事件,则10分钟后按照预设步长降低监控频率;若在10分钟内发生了异常事件,则直接按照预设步长提高监控频率,或者按照初始监控频率进行监控。
[0064] 在本发明中,异常事件的发生标准和发生概率通过预先建立的自学习模型确定,自学习模型根据以下步骤建立。
[0065] 步骤一,分析历史监控数据,得出各异常事件发生时的发生标准;获取每一项运行指标的波动值,并判断波动值是否大于预设阈值;若判断结果为是,则该项运行指标为异常指标;若判断结果为否,则该项运行指标不是异常指标。
[0066] 具体地,即通过对大量历史数据进行分析学习,能够得到异常时间发生时每一项运行指标的监控数据的值所在的阈值范围,将该阈值范围作为某个异常事件的发生标准。或者,也可以计算异常事件发生时每一项运行指标的监控数据的波动值,将该波动值作为异常时事件的发生标准,在学习过程中,异常事件的发生标准可以随异常事件发生时运行指标的变化而变化。本实施例的波动值是通过计算每一项监控数据的峰值与平均值的差获得,不同运行指标的波动值分开计算。具体地,先获取监控数据的平均值,然后从该项监控数据中提取峰值,用该峰值减去平均值即可得到该项运行指标的波动值。在其他实施例中,也可以通过计算每一项监控数据的极差、方差、标准差或斜率作为波动值。
[0067] 步骤二,在确定发生标准后,获取实时的监控数据,根据发生标准对实时获取的监控数据进行分析得出预测结果,预测结果用于指示是否即将发生异常事件。
[0068] 步骤三,然后再判断异常事件是否发生,即验证预测结果是否准确,并根据验证结论调整发生标准和异常事件的发生概率。若预测结果指示不会即将发生异常事件,且验证结果错误,则将异常事件的发生概率增大或设置为初始发生概率,并根据监控数据确定异常事件的发生标准;若预测结果指示即将发生异常事件,且验证结果准确,则增加异常事件的发生概率,并根据监控数据确定异常事件的发生标准;若预测结果指示即将发生异常事件,且验证结果错误,则减小异常事件的发生概率。
[0069] 本发明实施例的自学习模型对于发生标准和发生概率的具体设置过程如图2所示,具体地,起初以一个较快的初始监控频率r0对管理的监控点进行数据采集。获取到监控数据后对这些数据进行分析,判断这些监控指标(A1,A2,……,An)是否满足已发生过的异常事件的发生标准,若找到指标满足一个以上异常事件,则假设即将发生异常事件;若没有找到满足任何异常事件的指标,则假设不会发生异常事件。
[0070] 接着,对上述的假设结果进行验证,若在预设时间范围内却接收到异常事件,则先提高监控频率,并对多项运行指标的监控数据进行分析,找到引起该异常事件发生的异常指标。在本发明实施例中,寻找异常指标可以通过分析每一项运行指标的监控数据或波动值,判断这些监控数据或波动值是否大于预设阈值,波动值是通过计算监控数据的极差、方差、标准差、斜率、或峰值与平均值的差获得。若判断结果为是,则该项运行指标为异常指标;若判断结果为否,则该项运行指标不是异常指标。
[0071] 若该异常事件是第一次发生,可以将异常指标作为该异常事件的发生标准,并将异常事件的发生概率设置为初始发生概率,如50%。若该异常事件不是第一次发生,则根据本次找到的异常指标更新该异常事件原来的发生标准,并提高其发生概率P,如将P增大百分之十,该异常事件的发生标准和发生概率后,将异常指标、发生的异常事件、发生概率P记录在数据库中。若在预设时间范围内未接收到异常事件,则先降低监控频率,然后将假定发生的异常事件的发生概率减小,并记录在数据库中。当数据库中可能发生的异常事件的发生概率小于或等于零时,则将该异常事件从数据库中剔除。
[0072] 例如,当第一次接收到某个异常事件后(比如程序崩溃),则分析当发生该异常事件时候,那些运行指标发生了异常(比如程序内存一直在上升,磁盘IO很高)。最终得到结论:当程序内存上涨并且磁盘IO很高(发生标准),这可能导致程序崩溃,对该事件设置初始发生概率为50%,并调整频率继续监控。当学习模块发现监控数据满足上述的发生标准(当程序内存上涨并且磁盘IO很高)时,设置监控频率加快,并假定会发生某个事件(程序崩溃)。当收到该事件后,重新调整发生标准和发生概率,得到更加准确的结论,比如,内存到多少会发生崩溃或内存增长速率高于多少会发生崩溃(即更新了发生标准),同时增加该结论的概率为60%。如果没有收到该事件,这对该结论概率进行降低,为40%。
[0073] 在另一实施例中,本发明在预测到有异常事件发生时,还可以主动将告警信息发送给用户,该告警信息包括即将发生的异常事件和监控数据等信息,因此用户在查看监控时候,可以对针对性查看有异常情况的监控数据,比如程序崩溃时候,整个系统处于什么状态。
[0074] 本发明还提供了一种自学习的变频监控系统,如图3所示,包括监控模块、学习模块、事件采集模块和监控频率制定模块,其中,监控模块用于从监控频率制定模块中获取监控频率,并根据监控频率分别对多项运行指标进行采集,从监控节点中获取监控数据。学习模块,用于从监控模块中获取监控数据进行分析得出预测结果,预测结果用于指示是否即将发生异常事件;并且从事件采集模块中获取异常事件,对异常事件和监控数据进行学习。事件采集模块,用于接收监控节点中的发生的异常事件,即判断在预设时间范围内是否接收到异常事件;监控频率制定模块,用于若预测结果指示不会即将发生异常事件,且在预设时间范围内未接收到异常事件,则制定一个较低的监控频率。
[0075] 在本发明中,监控模块包含了监控程序,能够主动收集计算机系统中各个运行指标,提供查询给用户查看各个监控指标。事件采集:负责采集各种事件,比如:系统死机,程序崩溃,内存无法分配,程序自有事件等。事件采集模块可以是直接读取主机上(监控节点)的错误,也有可能是读取其他管理面的信息(比如在kubernetes中,读取apiserver的事件,获取主机不可用等)。
[0076] 本发明通过学习模块在接收事件后,读取监控程序的监控数据进行学习,最终得出发生该事件时,监控的那些指标发生那些特征(比如:CPU使用率逐步上升)。当这些指标没有发生时,指挥监控程序降低采集频率。当下一次发生类似的特征后,设置监控频率逐步升高,达到节省计算资源、存储空间和精确采样的目的。
[0077] 在本发明的另一实施中,该变频监控系统还包括告警模块,用户可以设置将要发生某种事件的时候,主动通知用户,用户及时处理,从而避免异常事件的发生。
[0078] 需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
[0079] 需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0080] 另外,结合上述实施例中的自学习的变频监控方法,本发明实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种自学习的变频监控方法。
[0081] 本发明的一个实施例中还提供了一种电子设备,该电子设备可以是终端。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自学习的变频监控方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0082] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0083] 本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0084] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。