说明书一种性能监控方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种性能监控方法和装置。
背景技术
随着云计算虚拟化技术的日益普及,虚拟化基础设施的管理与监 控变得越来越重要。异常检测就是对虚拟化设施的各种性能指标进行 实时监控,及时发现环境中的异常情况,并发出告警通知,以提醒运 维人员采取措施保持虚拟化设施的正常运行。
现有技术中,通常使用的方法是建立观测点的观测值的自回归模 型,自回归模型是根据自变量自身的规律来预测未来的情况。通过计 算出的前N个观测点计算出正统计量的平均值和标准差,负统计量平 均值和标准差和通过经验值估计的阈值参数K,得到统计量的第一告 警阈值范围,再根据当前观测点的观测值计算出当前统计量,判断当 前统计量是否在统计量的第一告警阈值范围,从而检测当前观测点的 观测值是否异常。
现有技术中,阈值参数K的选择是根据经验来设置的经验值,但 是监控指标成千上万,各种指标的观测值序列差异非常大,不可能每 个指标都凭借经验给定一个合适K值,导致异常检测的准确性降低。
发明内容
本发明的实施例提供一种性能监控的方法和装置,能够提高异常 检测的准确性。
为达到上述目的,本发明的实施例采用如下技术方案:
在第一方面,提供一种性能监控方法,包括:
记录当前观测点的观测值至观测值序列中;
在所述观测值序列中获取所述当前观测点的观测值的前N个观 测值组成的第一序列,所述N为大于或等于2的整数;
根据所述第一序列计算得到阈值参数K;
根据所述阈值参数K获取第一告警统计量λ对应的第一告警阈值 范围H1。
结合第一方面,在第一种可实现方式中,所述根据所述第一序列 计算得到阈值参数K包括:
获取所述第一序列的标准差σo;
获取所述第一序列的波动周期的正比例函数a,所述a大于1;
根据所述标准差σo和所述正比例函数a计算得到所述阈值参数 K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
结合第一方面和第一种可实现方式,在第二种可实现方式中,
所述根据所述阈值参数K获取告第一警统计量λ对应的第一告警 阈值范围H1包括:
获取统计量序列{λi};
根据所述统计量序列{λi}和所述阈值参数K获取所述第一告警阈 值范围H1,使得所述第一告警阈值范围H1为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
结合第二种可实现方式,在第三种可实现方式中,在所述根据所 述阈值参数K获取第一告警统计量λ对应的第一告警阈值范围H1之 后,所述方法还包括:
获取所述当前观测点的第一告警统计量λ;
判断所述第一告警统计量λ是否在所述第一告警阈值范围H1内;
若所述第一告警统计量λ不在所述第一告警阈值范围H1内,发出 告警信号。
结合第一方面、第一至第二种可实现方式,在第四种可实现方式 中,在所述根据所述阈值参数K获取第一告警统计量λ对应的第一告 警阈值范围H1之后,所述方法还包括:
获取所述当前观测点的第一告警统计量λ;
判断所述第一告警统计量λ是否在所述第一告警阈值范围H1内;
若所述第一告警统计量λ不在所述第一告警阈值范围H1内,在所 述观测值序列中删除所述当前观测点的观测值;
计算第二告警统计量φt;
计算所述第二告警统计量φt对应的第二告警阈值范围H2;
判断所述第二告警统计量φt是否在所述第二告警阈值范围H2内;
当所述第二告警统计量φt不在所述第二告警阈值范围H2内,发出 告警信号。
结合第四种可实现方式,在第五种可实现方式中,
所述计算第二告警统计量φt包括:
获取所述当前观测点的第一告警统计量λ;
获取统计量序列{λi};
根据所述第一告警统计量λ和所述统计量序列{λi}获取所述当前 观测点的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + ; ]]>
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差,b为预设采样时间 间隔函数。
结合第五种种可实现方式,在第六种可实现方式中,在所述计算 所述第二告警统计量φt对应的第二告警阈值范围H2之前,所述方法还 包括:
初始化异常观测点参数d=0;
若出现所述第一告警统计量λ不在所述第一告警阈值范围H1内 的观测点,将当前的d加1得到新的d;
若当前d不等于0,且出现所述第一告警统计量λ在所述第一告 警阈值范围H1内的观测点,将当前的d减1得到新的d。
结合第六种可实现方式,在第七种可实现方式中,所述计算所述 第二告警统计量φt对应的第二告警阈值范围H2包括:
获取当前的异常观测点参数d;
根据所述阈值参数K、所述所有异常观测点参数d,通过告警统 计量阈值公式计算第二告警统计量φt对应的第二告警阈值范围H2,所 述告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) . ]]>
在第二方面,提供一种性能监控装置,包括:
记录单元,用于记录当前观测点的观测值至观测值序列中;
第一获取单元,用于在所述观测值序列中获取所述当前观测点的 观测值的前N个观测值组成的第一序列,所述N为大于或等于2的整 数;
第一计算单元,用于根据所述第一序列计算得到阈值参数K;
第二获取单元,用于根据所述阈值参数K获取第一告警统计量λ 对应的第一告警阈值范围H1。
结合第二方面,在第一种可实现方式中,所述根据所述第一序列 计算得到阈值参数K包括:
获取所述第一序列的标准差σo;
获取所述第一序列的波动周期的正比例函数a,所述a大于1;
根据所述标准差σo和所述正比例函数a计算得到所述阈值参数 K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
结合第二方面、第一种可实现方式,在第二种可实现方式中,
所述第二获取单元具体用于:
获取统计量序列{λi};
根据所述统计量序列{λi}和所述阈值参数K获取所述第一告警阈 值范围H1,使得所述第一告警阈值范围H1为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
结合第二种可实现方式,在第三种可实现方式中,所述性能监控 装置还包括:
第三获取单元,用于获取所述当前观测点的第一告警统计量λ;
第一判断单元,用于判断所述第一告警统计量λ是否在所述第一 告警阈值范围H1内;
第一告警单元,用于在所述第一告警统计量λ不在所述第一告警 阈值范围H1内时,发出告警信号。
结合第二方面、第一至第二种可实现方式,在第四种可实现方式 中,所述性能监控装置还包括:
第四获取单元,用于获取所述当前观测点的第一告警统计量λ;
第二判断单元,用于判断所述第一告警统计量λ是否在所述第一 告警阈值范围H1内;
删除单元,用于若所述第一告警统计量λ不在所述第一告警阈值 范围H1内,在所述观测值序列中删除所述当前观测点的观测值;
第二计算单元,用于计算第二告警统计量φt;
第三计算单元,用于计算所述第二告警统计量φt对应的第二告警 阈值范围H2;
第三判断单元,用于判断所述第二告警统计量φt是否在所述第二 告警阈值范围H2内;
第二告警单元,用于在所述第二告警统计量φt不在所述第二告警 阈值范围H2内时,发出告警信号。
结合第四种可实现方式,在第五种可实现方式中,
所述第二计算单元具体用于:
获取所述当前观测点的第一告警统计量λ;
获取统计量序列{λi};
根据所述第一告警统计量λ和所述统计量序列{λi}获取所述当前 观测点的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + ; ]]>
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差,b为预设采样时间 间隔函数。
结合第五种种可实现方式,在第六种可实现方式中,所述性能监 控装置还包括:
初始化单元,用于初始化异常观测点参数d=0;
处理单元,用于:在出现所述第一告警统计量λ不在所述第一告 警阈值范围H1内的观测点时,将当前的d加1得到新的d;
在当前d不等于0,且出现所述第一告警统计量λ在所述第一告 警阈值范围H1内的观测点时,将当前的d减1得到新的d。
结合第六种可实现方式,在第七种可实现方式中,所述第三计算 单元具体用于:
获取当前的异常观测点参数d;
根据所述阈值参数K、所述所有异常观测点参数d,通过告警统 计量阈值公式计算第二告警统计量φt对应的第二告警阈值范围H2,所 述告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) . ]]>
本发明的实施例提供一种性能监控方法和装置,包括:检测设 备记录当前观测点的观测值至观测值序列中;在所述观测值序列中获 取所述当前观测点的观测值的前N个观测值组成的第一序列;再根据 所述第一序列计算得到阈值参数;根据所述阈值参数获取第一告警统 计量对应的第一告警阈值范围。这样一来,阈值参数根据第一序列的 变化而变化,从而使计算出的第一告警阈值范围更加准确,提高异常 检测的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员 来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
图1为本发明实施例提供的一种性能监控方法的流程图;
图2为本发明实施例提供的又一种性能监控方法的流程图;
图3为现有技术中第一告警阈值范围来判断当前观测点的观测 值是否异常方法的示意图;
图4为本发明实施例提供的第一告警统计量判断方法的示意图;
图5为本发明实施例提供的第二告警统计量判断方法的示意图
图6为本发明实施例提供的一种性能监控装置的结构示意图;
图7为本发明实施例提供的又一种性能监控装置的结构示意图;
图8为本发明实施例提供的另一种性能监控装置的结构示意图;
图9为本发明实施例提供的再一种性能监控装置的结构示意图;
图10为本发明实施例提供的又再一种性能监控装置的结构示意 图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。
本发明实施例提供了一种性能监控方法,应用于检测设备,例如 云计算基础设施等,如图1所示:
步骤101、记录当前观测点的观测值至观测值序列中。
步骤102、在观测值序列中获取当前观测点的观测值的前N个观 测值组成的第一序列,所述N为大于或等于2的整数。
步骤103、根据第一序列计算得到阈值参数K。
首先,检测设备获取第一序列的标准差σo,其次,检测设备获取 第一序列的波动周期的正比例函数a,所述a大于1;最后,根据所述 第一序列的标准差σo和所述第一序列的波动周期的正比例函数a,计 算得到所述阈值参数K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
特别的,K的取值范围是[2,3),观测值波动的越剧烈,标准差越 大,周期越小,K值就越趋近于3,观测值波动的越平缓,标准差越 小,周期越大,K值就越趋近于2。在观测值越剧烈的地方,阈值范 围变得越宽;在观测值越平缓的时候,阈值范围变得越窄。
步骤104、根据阈值参数K获取第一告警统计量λ对应的第一告 警阈值范围H1。
首先,检测设备获取统计量序列{λi}。
其次,检测设备根据统计量序列{λi}和第一序列的阈值参数K获 取第一告警阈值范围H1,使得所述第一告警阈值范围H1为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] , ]]>
其中,为统计量序列{λi}中正值序列{λi+}的平均值,σ+为{λi}中 正值序列{λi+}的标准差,为统计量序列{λi}中负值序列{λi-}的平均 值,σ-为{λi}中负值序列{λi-}的标准差。
再次,检测设备获取当前观测点的第一告警统计量λ。
最后,检测设备判断第一告警统计量λ是否在所述第一告警阈值 范围H1内。
这样一来,检测设备记录根据当前观测值的第一序列计算出阈值 参数K,从而获得第一告警统计量λ和对应的第一告警阈值范围H1, 从而检测当前观测点的观测值是否异常,因此,阈值参数K根据第一 序列的变化而变化,从而使计算出的第一告警阈值范围H1更加准确, 提高异常检测的准确性。
异常检测的方法有很多,本发明中包括了第一告警统计量判断方 法和第二告警统计量判断方法。
示例的,第一告警统计量判断方法可以包括:
检测设备获取第一序列的测量值,得到第一告警阈值范围H1,获 取当前观测点的观测值,得到第一告警统计量λ,根据第一告警统计 量λ是否在所述第一告警阈值范围H1内,若第一告警统计量λ不在所 述第一告警阈值范围H1内,在所述观测值序列中删除所述当前观测 点,发出告警信号;若第一告警统计量且第一告警统计量 则所述观测值序列中所述当前观测点的下一个观测点成 为当前观测点,重新检测所述当前观测点的观测值。
示例的,第二告警统计量判断方法可以包括:
首先,获取当前观测点的第一告警统计量λ;判断第一告警统计 量λ是否在第一告警阈值范围H1内,若所述第一告警统计量λ不在所 述第一告警阈值范围H1内,在所述观测值序列中删除所述当前观测点 的观测值。
其次,计算第二告警统计量φt。
检测设备可以根据第一告警统计量λ和统计量序列{λi}获取当前 观测点的观测值的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + . ]]>
当第一告警统计量λ不在第一告警阈值范围H1内时,当前观测点 的观测值的异常量δt是该δt超过第一告警阈值范围H1的绝对值,当λ 在第一告警阈值范围H1内时,δt为0。
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 , ]]>
其中,b是时间距离函数,为统计量序列{λi}中正值序列{λi+}的 平均值,σ+为{λi}中正值序列{λi+}的标准差,为所述统计量序列{λi} 中负值序列{λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
再次,计算所述第二告警统计量φt对应的第二告警阈值范围H2。
检测设备获取异常观测点参数d包括:
初始化异常观测点参数d=0;若出现第一告警统计量λ不在第一 告警阈值范围H1内的观测点,将当前的d加1得到新的d;若当前d不 等于0,且出现所述第一告警统计量λ在所述第一告警阈值范围H1内 的观测点,将当前的d减1得到新的d;若当前d=0,且出现第一告 警统计量λ在第一告警阈值范围H1内的观测点,保持d不变。
具体的,在检测观测值之前,初始化异常观测点参数d=0;在检 测观测值过程中,判断d是否等于0,若d不等于0,新的d的取值出 现了两种情况:当出现第一告警统计量λ不在第一告警阈值范围H1内 的观测点时,将当前的d加1得到新的d,当出现第一告警统计量λ在 第一告警阈值范围H1内的观测点时,将当前的d减1得到新的d;在 检测观测值过程中,若d等于0,新的d的取值出现了两种情况:若出 现第一告警统计量λ不在第一告警阈值范围内H1的观测点,将当前的 d加1得到新的d,在第一序列中删除所述当前观测点;若出现第一 告警统计量λ在第一告警阈值范围H1内的观测点,d不变,d=0。
示例的,假设需要检测的观测点对应的观测值为y1,y2,......,y7,y8, 其中y2,y5,y6的第一告警统计量不在对应的第一告警阈值范围内, y1,y3,y4,y7,y8的第一告警统计量在对应的第一告警阈值范围内。
检测设备检测之前,初始化异常观测点参数d=0,开始检测,将 第一个观测点作为当前观测点,检测该观测点的观测值y1,y1的第一 告警统计量在对应的第一告警阈值范围内,d不变,d=0;继续将第 二个观测点作为当前观测点,检测该观测点的观测值y2,y2的第一告 警统计量不在对应的第一告警阈值范围内,当前的d加1得到新的d, d=1;将第三个观测点作为当前观测点,检测该观测点的观测值y3, 当前d=1,y3的第一告警统计量在对应的第一告警阈值范围内,当前 的d减1得到新的d,d=0;将第四个观测点作为当前观测点,检测 该观测点的观测值y4,当前d=0,y4的第一告警统计量在对应的第一 告警阈值范围内,d不变,d=0;将第五个观测点作为当前观测点, 检测该观测点的观测值y5,y5的第一告警统计量不在对应的第一告警 阈值范围内,当前的d加1得到新的d,d=1;将第六个观测点作为 当前观测点,检测该观测点的观测值y6,y6的第一告警统计量不在对 应的第一告警阈值范围内,当前的d加1得到新的d,d=2;将第七 个观测点作为当前观测点,检测该观测点的观测值y7,当前d=2,y7的 第一告警统计量在对应的第一告警阈值范围内,当前的d减1得到新 的d,d=1;将第八个观测点作为当前观测点,检测该观测点的观测 值y8,当前d=1,y8的第一告警统计量在对应的第一告警阈值范围内, 当前的d减1得到新的d,d=0。
根据阈值参数K、异常观测点参数d,计算第二告警统计量φt对 应的第二告警阈值范围H2,所述告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) . ]]>
最后,判断第二告警统计量φt是否在第二告警阈值范围H2内。
当前并未告警时,若第二告警统计量φt不在第二告警阈值范围H2内,发出告警信号;当前已经发生告警,若第二告警统计量φt不在第 二告警阈值范围H2内,继续告警;若第二告警统计量φt在第二告警阈 值范围H2内,结束告警。
这样,当连续多个检测点发生异常时,第二告警统计量迅速以指 数增长,很快就会超过线性增长的第二告警阈值范围;当只有单个点 发生异常,即瞬时冲高场景,只要后续没有异常点的发生,第二告警 统计量很快就以指数形式衰减至0,从而避免了虚警的产生。
本发明实施例提供了一种性能监控方法,应用于检测设备,例如 云计算基础设施等,如图2所示,包括:
步骤201、记录当前观测点的观测值至观测值序列中,执行步骤 202。
假设y1,y2,.....,yi-1,yi是从该指标的异常检测开始到当前时刻所有观 测点的观测值,当前观测点的观测值为yi,原先的观测值序列是当前 观测点之前所有在异常检测中未发生异常的观测点的观测值组成的 序列,为(yp,......,yq),检测设备记录当前观测点的观测值yi至原先的观 测值序列,组成了当前的观测值序列(yp,......,yq,yi),p到q之间的数可 以是不连续的。
步骤202、在观测值序列中获取当前观测点的观测值的前N个观 测值组成的第一序列,所述N为大于或等于2的整数,执行步骤203。
在观测值序列(yp,......,yq,yi)中获取所述当前观测点的观测值yi的 前N个观测值组成的第一序列,其中2≤N≤q-p。
示例的,假设观测值序列为(y2,y5,y6,y7,y8),第一序列中由3个观 测值组成,观测值序列中第5个观测点的观测值y8是当前观测点的观 测值。检测设备获取y8的前3个观测值y5,y6,y7组成的第一序列 (y5,y6,y7)。
步骤203、根据第一序列计算得到阈值参数K,执行步骤204。
假设第一序列的N个测量值为y1,y2,......,yN-1,yN,观测值序列中第 N+1个观测点的观测值yN+1作为当前观测点的观测值。
首先,检测设备获取第一序列的标准差σo
为所述第一序列中观测值y1,y2,......,yN-1,yN的平均值,平均值公式 为:
y ‾ = 1 N Σ t = 1 N y t , ]]>
其中,t是1,2,......,N-1,N。
第一序列的标准差为:
σ 0 = 1 N - 1 Σ t = 1 N ( y t - y ‾ ) 2 . ]]>
其次,检测设备获取所述第一序列的波动周期的正比例函数a, 所述a大于1,第一序列的波动周期的正比例函数的公式为:
a=bT,
其中,T是所述第一序列的波动周期,b是大于0的常数。
根据所述第一序列的标准差σo和所述第一序列的波动周期的正 比例函数a计算得到阈值参数K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
值得说明的是,K的取值范围可以是[2,3),观测值波动的越剧烈, 标准差越大,周期越小,K值就越趋近于3,观测值波动的越平缓, 标准差越小,周期越大,K值就越趋近于2。在观测值越剧烈的地方, 阈值范围变得越宽;在观测值越平缓的时候,阈值范围变得越窄。
步骤204、获取第一告警统计量λ对应的第一告警阈值范围H1, 执行步骤205。
假设第一序列的N个测量值为y1,y2,...,yN,观测值序列中第N+1个 观测点的观测值yN+1作为当前观测点的观测值。
首先,检测设备获取统计量序列{λi}。
具体的,计算出观测值均差值χt。
其中,t=1,2,......,N+1
令(χ1,χ2,...,χN,χN+1)是观测值均差值的序列。
特别的,观测值yt中t的范围是1,2,......,N+1,所述观测值yt也就是 说包括第一序列的观测值y1,y2,...,yN-1,yN和当前观测点的观测值yN+1,获 取观测值均差值的序列是为了获取统计量序列{λi}和第一告警统计量 λ。
检测设备根据自回归模型AR(2)计算出统计量序列{λi},包括:
自回归模型AR(2)为:
其中,t=1,2,.....,N+1,是AR(2)的系数,et是白噪声,所述et的平均值为0,所述et的均方差为σ2。
由最小二乘法,可以计算出所述AR(2)的系数的估计值:
根据计算出的再次计算判异量ej,所述判决量ej公式为:
其中,j=3,4,.....,N+1
计算出判异量e3,e4,......,eN+1,根据所述e3,e4,......,eN+1求出判决量的均 方根σe2:
σ e 2 = 1 N - 1 Σ j = 3 N + 1 e j 2 . ]]>
再根据前N-2个判异量e3,e4,......,eN和判决量的均方根σe2,计算出 对应的统计量λi,所述统计量公式λi为:
λ i = e k σ e . ]]>
计算出λ1,λ2,......,λn-3作为统计量序列{λi}的统计量。
其中,i=k-2,k=3,4,......,N。
假设正值序列中有m个统计量,负值序列中有n个统计量。检测 设备将第一序列的统计量序列{λi}按正负值分为两个序列,分别是正 值序列{λi+}和负值序列{λi-},为统计量序列{λi}中正值序列{λi+}的平 均值,σ+为{λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中 负值序列{λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。和σ+、 和σ-的公式为:
λ ‾ + = 1 m Σ i = 1 m λ i + σ + = 1 m - 1 Σ i = 1 m ( λ i + - λ ‾ + ) 2 , ]]>
λ ‾ - = 1 n Σ i = 1 n λ i - σ - = 1 n - 1 Σ i = 1 n ( λ i - - λ ‾ - ) 2 . ]]>
得到第一告警量阈值范围H1,第一告警量阈值范围H1公式为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] . ]]>
再次,检测设备获取当前观测点的观测值的第一告警统计量λ。
检测设备获取eN+1和σe,计算出第一告警统计量λ,第一告警统 计量λ公式为:
λ = e N + 1 σ e , ]]>
其中,第一告警统计量λ是检测观测值是否异常的量化表示。
步骤205、判断第一告警统计量λ是否在第一告警阈值范围H1内。
若第一告警统计量λ在第一告警阈值范围H1内,执行步骤207;
若第一告警统计量λ不在第一告警阈值范围H1内,观测值序列中 删除当前观测点yi,执行步骤206。
步骤206、在所述观测值序列中删除所述当前观测点的观测值yi, 执行步骤207。
示例的,假设观测值序列为(y2,y5,y6,y7,y8),观测值序列中第5个 观测点的观测值y8是当前观测点的观测值,且第一告警统计量λ不在 第一告警阈值范围H1内。观测值序列由原来的(y2,y5,y6,y7,y8)变为 (y2,y5,y6,y7)。
步骤207、计算第二告警统计量φt,执行步骤208。
检测设备根据第一告警统计量λ和统计量序列{λi}获取当前观测 点的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + . ]]>
当所述λ不在所述第一告警阈值范围H1内时,所述δt是超过第一 告警阈值范围H1的绝对值,当所述λ在所述第一告警阈值范围H1内 时,所述δt为0。
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 , ]]>
其中,b是时间距离函数,为统计量序列{λi}中正值序列{λi+}的 平均值,σ+为{λi}中正值序列{λi+}的标准差,为所述统计量序列{λi} 中负值序列{λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
步骤208、计算第二告警统计量φt对应的第二告警阈值范围H2, 执行步骤209。
首先,检测设备获取异常观测点参数d,包括:
初始化异常观测点参数d=0;若出现第一告警统计量λ不在第一 告警阈值范围H1内的观测点,将当前的d加1得到新的d;若当前d不 等于0,且出现第一告警统计量λ在第一告警阈值范围H1内的观测点, 将当前的d减1得到新的d;若当前d=0,且出现第一告警统计量λ在 第一告警阈值范围H1内的观测点,保持d不变。
具体的,在检测观测值之前,初始化异常观测点参数d=0;在检 测观测值过程中,判断d是否等于0,若d不等于0,新的d的取值出 现了两种情况:当出现第一告警统计量λ不在第一告警阈值范围H1内 的观测点时,将当前的d加1得到新的d,当出现第一告警统计量λ在 第一告警阈值范围H1内的观测点时,将当前的d减1得到新的d;在 检测观测值过程中,若d等于0,新的d的取值出现了两种情况:若出 现第一告警统计量λ不在第一告警阈值范围内H1的观测点,将当前的 d加1得到新的d,在第一序列中删除所述当前观测点;若出现第一 告警统计量λ在第一告警阈值范围H1内的观测点,保持d不变,即 d=0。
示例的,假设需要检测的观测点对应的观测值为y1,y2,......,y7,y8, 其中y2,y5,y6的第一告警统计量不在对应的第一告警阈值范围内, y1,y3,y4,y7,y8的第一告警统计量在对应的第一告警阈值范围内。
检测设备检测之前,初始化异常观测点参数d=0,开始检测,将 第一个观测点作为当前观测点,检测该观测点的观测值y1,y1的第一 告警统计量在对应的第一告警阈值范围内,d不变,d=0;继续将第 二个观测点作为当前观测点,检测该观测点的观测值y2,y2的第一告 警统计量不在对应的第一告警阈值范围内,当前的d加1得到新的d, d=1;将第三个观测点作为当前观测点,检测该观测点的观测值y3, 当前d=1,y3的第一告警统计量在对应的第一告警阈值范围内,当前 的d减1得到新的d,d=0;将第四个观测点作为当前观测点,检测 该观测点的观测值y4,当前d=0,y4的第一告警统计量在对应的第一 告警阈值范围内,d不变,d=0;将第五个观测点作为当前观测点, 检测该观测点的观测值y5,y5的第一告警统计量不在对应的第一告警 阈值范围内,当前的d加1得到新的d,d=1;将第六个观测点作为 当前观测点,检测该观测点的观测值y6,y6的第一告警统计量不在对 应的第一告警阈值范围内,当前的d加1得到新的d,d=2;将第七 个观测点作为当前观测点,检测该观测点的观测值y7,当前d=2,y7的 第一告警统计量在对应的第一告警阈值范围内,当前的d减1得到新 的d,d=1;将第八个观测点作为当前观测点,检测该观测点的观测 值y8,当前d=1,y8的第一告警统计量在对应的第一告警阈值范围内, 当前的d减1得到新的d,d=0。
其次,根据阈值参数K、异常观测点参数d,计算第二告警统计 量φt对应的第二告警阈值范围H2,所述第二告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) , ]]>
其中,为统计量序列{λi}中正值序列{λi+}的平均值,σ+为{λi}中 正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列{λi-}的平 均值,σ-为{λi}中负值序列{λi-}的标准差。
步骤209、判断第二告警统计量φt是否在第二告警阈值范围H2范 围内。
第二告警统计量φt在第二告警阈值范围H2内,执行步骤210;
第二告警统计量φt不在第二告警阈值范围H2内,执行步骤211。
步骤210、判断当前是否告警。
若当前未告警,检测下一个观测点的观测值yi+1,执行步骤201;
若当前告警,执行步骤213。
步骤211、判断当前是否告警。
若当前告警,检测下一个观测点的观测值yi+1,执行步骤201;
若当前未告警,执行步骤212。
步骤212、启动告警,开始计时,保存告警开始时间至检测设备, 检测下一个当前观测点的观测值yi+1,执行步骤201。
步骤213、关闭告警,结束计时,保存告警结束时间至检测设备, 检测下一个当前观测点的观测值yi+1,执行步骤201。
检测设备保存告警开始时间和告警关闭时间,使观测点的观测值 的异常检测从单点告警变为连续时间段告警,观测点的观测值的异常 检测更加准确,避免了瞬时冲高场景产生的单点虚警。
图3表示现有技术中第一告警阈值范围来判断当前观测点的观 测值是否异常方法,图4表示为本发明实施例提供的第一告警统计量 判断方法,图5表示为本发明实施例提供的第二告警统计量判断方 法。图3和图4中,x轴表示时间,y轴表示第一告警统计量,图5 中,x轴表示时间,y轴表示第二告警统计量。
由图3和图4可以看出,现有技术和本发明的方法相比较,现有 技术的阈值参数是凭经验选定的定值,本发明的阈值参数随着第一序 列的检测值的波动变化而变化的,第一告警阈值范围也会随着阈值参 数的变化而变化,在观测值波动大的地方,阈值参数变大,第一告警 阈值范围变宽,在观测值波动小的地方,阈值参数变小,第一告警阈 值范围变窄,这样,观测点的观测值的异常检测更加准确;从图4和 图5可以看出,在本发明的第一告警统计量判断方法情况,当只有单 个点发生异常,即瞬时冲高场景,第一告警统计量超过了第一告警阈 值范围,就会判定当前观测点的观测值异常,但实际中,瞬时冲高场 景属于正常现象,这样就产生了虚警;在本发明的第二告警统计量判 断方法情况,若第一告警统计量超过了第一告警阈值范围,只要后续 没有异常点的发生,第二告警统计量很快就以指数形式衰减至0,从 而避免了虚警的产生,当连续多个检测点发生异常时,第二告警统计 量迅速以指数增长,很快就会超过线性增长的第二告警阈值范围。
本发明实施例提供一种性能监控装置30,例如云计算基础设施 等,如图6所示,包括:
记录单元301,用于记录当前观测点的观测值至观测值序列中;
第一获取单元302,用于在所述观测值序列中获取所述当前观测 点的观测值的前N个观测值组成的第一序列,所述N为大于或等于2 的整数;
第一计算单元303,用于根据所述第一序列计算得到阈值参数K;
第二获取单元304,用于根据所述阈值参数K获取第一告警统计 量λ对应的第一告警阈值范围H1。
这样一来,检测设备记录根据当前观测值的第一序列计算出阈值 参数K,从而获得第一告警统计量λ和对应的第一告警阈值范围H1, 从而检测当前观测点是否异常,因此,阈值参数K根据第一序列的变 化而变化,从而使计算出的第一告警阈值范围H1更加准确,提高异常 检测的准确性。
所述第一计算单元303具体用于:
获取所述第一序列的标准差σo;
获取所述第一序列的波动周期的正比例函数a,所述a大于1;
根据所述标准差σo和所述正比例函数a计算得到所述阈值参数 K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
所述第二获取单元304具体用于:
获取统计量序列{λi};
根据所述统计量序列{λi}和所述阈值参数K获取所述第一告警阈 值范围H1,使得所述第一告警阈值范围H1为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
所述性能监控装置30,如图7所示,还包括:
第三获取单元305,用于获取所述当前观测点的第一告警统计量 λ;
第一判断单元306,用于判断所述第一告警统计量λ是否在所述 第一告警阈值范围H1内;
第一告警单元307,用于在所述第一告警统计量λ不在所述第一 告警阈值范围H1内时,发出告警信号。
所述性能监控装置30,如图8所示,还包括:
第四获取单元308,用于获取所述当前观测点的第一告警统计量 λ;
第二判断单元309,用于判断所述第一告警统计量λ是否在所述 第一告警阈值范围H1内;
删除单元310,用于若所述第一告警统计量λ不在所述第一告警 阈值范围H1内,在所述观测值序列中删除所述当前观测点的观测值;
第二计算单元311,用于计算第二告警统计量φt;
所述第二计算单元311具体用于:
获取所述当前观测点的第一告警统计量λ;
获取统计量序列{λi};
根据所述第一告警统计量λ和所述统计量序列{λi}获取所述当前 观测点的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + ; ]]>
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差,b为预设采样时间 间隔函数。
第三计算单元312,用于计算所述第二告警统计量φt对应的第二 告警阈值范围H2;
所述第三计算单元312具体用于:
获取当前的异常观测点参数d;
根据所述阈值参数K、所述所有异常观测点参数d,通过告警统 计量阈值公式计算第二告警统计量φt对应的第二告警阈值范围H2,所 述告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) . ]]>
第三判断单元313,用于判断所述第二告警统计量φt是否在所述 第二告警阈值范围H2内;
第二告警单元314,用于在所述第二告警统计量φt不在所述第二 告警阈值范围H2内时,发出告警信号。
所述性能监控装置30,如图9所示,还包括:
初始化单元315,用于初始化异常观测点参数d=0;
处理单元316,用于:在出现所述第一告警统计量λ不在所述第 一告警阈值范围H1内的观测点时,将当前的d加1得到新的d;
在当前d不等于0,且出现所述第一告警统计量λ在所述第一告 警阈值范围H1内的观测点时,将当前的d减1得到新的d。
这样,当连续多个检测点发生异常时,第二告警统计量迅速以指 数增长,很快就会超过线性增长的第二告警阈值范围;当只有单个点 发生异常,即瞬时冲高场景,只要后续没有异常点的发生,第二告警 统计量很快就以指数形式衰减至0,从而避免了虚警的产生。
本发明实施例提供一种性能监控装置40,例如云计算基础设施 等,如图10所示,包括:
处理器401,用于:
记录当前观测点的观测值至观测值序列中;
在所述观测值序列中获取所述当前观测点的观测值的前N个观 测值组成的第一序列,所述N为大于或等于2的整数;
根据所述第一序列计算得到阈值参数K;
根据所述阈值参数K获取第一告警统计量λ对应的第一告警阈值 范围H1。
这样一来,检测设备记录根据当前观测值的第一序列计算出阈值 参数K,从而获得第一告警统计量λ和对应的第一告警阈值范围H1, 从而检测当前观测点是否异常,因此,阈值参数K根据第一序列的变 化而变化,从而使计算出的第一告警阈值范围H1更加准确,提高异常 检测的准确性。
所述处理器401具体用于:
获取所述第一序列的标准差σo;
获取所述第一序列的波动周期的正比例函数a,所述a大于1;
根据所述标准差σo和所述正比例函数a计算得到所述阈值参数 K,使得所述阈值参数K满足:
κ = 2 + lo g a ( aσ o + 1 σ o + 1 ) . ]]>
所述处理器401具体用于:
获取统计量序列{λi};
根据所述统计量序列{λi}和所述阈值参数K获取所述第一告警阈 值范围H1,使得所述第一告警阈值范围H1为:
[ λ ‾ - - κ σ - , λ ‾ + + κ σ + ] ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差。
所述处理器401具体用于:
获取所述当前观测点的第一告警统计量λ;
判断所述第一告警统计量λ是否在所述第一告警阈值范围H1内;
若所述第一告警统计量λ不在所述第一告警阈值范围H1内,发出 告警信号。
所述处理器401还用于:
获取所述当前观测点的第一告警统计量λ;
判断所述第一告警统计量λ是否在所述第一告警阈值范围H1内;
若所述第一告警统计量λ不在所述第一告警阈值范围H1内,在所 述观测值序列中删除所述当前观测点的观测值;
计算第二告警统计量φt;
计算所述第二告警统计量φt对应的第二告警阈值范围H2;
判断所述第二告警统计量φt是否在所述第二告警阈值范围H2内;
当所述第二告警统计量φt不在所述第二告警阈值范围H2内,发出 告警信号。
所述处理器401具体用于:
获取所述当前观测点的第一告警统计量λ;
获取统计量序列{λi};
根据所述第一告警统计量λ和所述统计量序列{λi}获取所述当前 观测点的异常量δt,所述δt满足:
δ t = λ - ( λ ‾ + + κ σ + ) , λ > λ ‾ + + κ σ + λ ‾ - - κ σ - - λ , λ < λ ‾ - - κ σ - 0 , λ ‾ - - κ σ - ≤ λ ≤ λ ‾ + + κ σ + ; ]]>
获取所述第二告警统计量φt,所述φt满足:
φ t = ( 1 + 1 b ) φ t - 1 + δ t , δ t > 0 ( 1 - 1 b ) φ t - 1 , δ t = 0 0 , t = 0 ; ]]>
其中,为所述统计量序列{λi}中正值序列{λi+}的平均值,σ+为 {λi}中正值序列{λi+}的标准差,为所述统计量序列{λi}中负值序列 {λi-}的平均值,σ-为{λi}中负值序列{λi-}的标准差,b为预设采样时间 间隔函数。
所述处理器401具体用于:
初始化异常观测点参数d=0;
若出现所述第一告警统计量λ不在所述第一告警阈值范围H1内 的观测点,将当前的d加1得到新的d;
若当前d不等于0,且出现所述第一告警统计量λ在所述第一告 警阈值范围H1内的观测点,将当前的d减1得到新的d。
所处处理器401具体用于:
获取当前的异常观测点参数d;
根据所述阈值参数K、所述所有异常观测点参数d,通过告警统 计量阈值公式计算第二告警统计量φt对应的第二告警阈值范围H2,所 述告警统计量阈值公式为:
H 2 = d × max ( λ ‾ + + κ σ + , | λ ‾ - - κ σ - | ) . ]]>
这样,当连续多个检测点发生异常时,第二告警统计量迅速以指 数增长,很快就会超过线性增长的第二告警阈值范围;当只有单个点 发生异常,即瞬时冲高场景,只要后续没有异常点的发生,第二告警 统计量很快就以指数形式衰减至0,从而避免了虚警的产生。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机 可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤; 而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序 代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并 不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应以所述权利要求的保护范围为准。