浅谈基于标准差的的波动监控

 
  电信BOSS系统的一些应用,经常需要做波动的监控,比如每日的某业务的话单量、某业务的受理量、某业务错单量等,一般做法,是做同比和环比,取经验值超过一定百分比来进行波动的监控,这些监控,有一个最大的坏处就是,这些经验值很难调整:
经常会有上百种来源,而每种业务的经验值又各不相同,且业务会有自然的增长或者下降,如果这些百分比的阀值调整太松,有时候问题难以发现,如果调整太紧,则告警又非常频繁,导致误告警的情况增多。这样,就使得告警形同虚设。这种时候,引入标准差来进行监控是一个很好的办法。
首先不要被这个名字吓到,其实这个东西并不复杂,当然可以先去看一下百度百科:
写的相对晦涩一点,其实,我们不需要懂那么多,看如下的图即可:
   
也就是说,取标准差的过程,实际就是一个取“经验值”的过程,你并不需要关心,比如某个业务话单平时都是1000万话单,这个1000万的具体数值,也不需要关心,某些本身波动就很大的业务,比如某些小业务,你需要关系的是,今天发生的业务数量,比平时相差几个标准差即可,一般来说,我们取3个标准差,认为超过3个标准差,就是“异常的”。
实际操作起来,需要根据业务特性,来确定取样的样本:有三点需要考虑:
周期:如每天产生的长话话单数量,这个不会因时间变化而产生较大差异,按“日”来做取样分析即可,比如每月缴费的数量,则按用“月"的累积值比较合理。
对象:比如错单数量,因为跟输入源头有关,有可能随着输入源的增长而增长,此时,取比率是比较合适的。
样本个数:这个需要根据业务的实际情况来定,如果业务整体变化(增长/减少)缓慢,则可以取相邻较长时间,如果增长较快,则取较少,但是一般来说,超过30个取样才有实际意义。
至于计算方法,其实就是简单的四则运算:
假设当前值为X,标准差为S,平均数为A,标准差倍数为N,那么N=(A-X)/S
对于ORACLE ,标准差S可以用stddev函数计算得到,平均数A可以用avg函数计算得到。当然,也可以自己计算得出。
要做的监控,也就是对N进行监控。
其实真的是非常简单,但是也很好用的一个方法。

转载于:https://www.cnblogs.com/smokefire/p/6221958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值