聊聊监控(三):统计学技术的应用

业精于勤荒于嬉 行成于思毁于随

--韩愈《劝学解》

一直在思考如何在少量数据基础之上作出比较准确的评测,公司当前所研发的监控系统有一些重要的指标如交易成功率、失败率,这些数值是基于某个业务系统全量交易而计算出来的一个值,然而这个假设前提,在实际生产环境中,由于这个那个原因而不能很好的满足;再则还有一个原因,业务系统的处理性能或复杂度会因为这个监控需求变得低下或者更复杂,这取决于实现。监控系统也因为数据不完整,监控准确性也遭人诟病,要么将问题放大,要么将问题缩小。

如今,公司的业务系统处理瓶颈尚不在这,不过总有一天会定位到这里,所以得换个思路来解决对系统成功率、失败率等指标评估。

由此缘起,想到了一些统计学技术,先介绍一下涉及到统计学概念吧,大多数在中学阶段已经学过了。

总体与样本

总体是指整个评估对象的集合,比如全体学生、全体产品,在监控系统里,当然是指全体交易了;样本是指从总体中选取的一部分所组成的集合。

在数据分析中,很多时候是无法对总体进行调查的,这个时候就需要以样本数据为对象进行分析,进而推测到总体的性质。

平均值与标准差

平均值就是所有数据求和再除以数据的个数。标准差是衡量单个数据与均值之间差异的数值,通常用来表示一个数据集合的波动性。

正太分布

这个原理是我们以样本数据的性质来推测总体数据性质的理论依据,现实生活中,无论什么机器,什么系统,什么人所产出的数据(很多东西都可以量化的),都可以用概率分布来表示这些变动,其中最有名的就是正太分布(也称为高斯分布),以均值为中心左右对称,如下图所示(下图是用python中的scipy包生成的均值为,标准差为1的数据,matplotlib绘图)

看起来像个钟型,这个图形有一个特征:以均值为中心,左右1.96倍个标准差,所覆盖的数据面积占总体面积的95%(粗略统计时,我们通常取两倍个标准差),我们把符合这一概率分布的数据,就认为这些数据符合正太分布。

显著水平

显著水平,通俗的讲就是一个基准,一个分水岭,通常取值为5%,低于这个值的事件,称之为小概率事件,当然这个基准视实际情况而定,既然是小概率事件,正常情况下,我们可以置之不理的。

零假设与备择假设

所谓零假设是指样本数据的性质与总体数据性质符合情况,总体数据性质在我们监控案例中是指我们所期待的指标值。备择假设的定义与零假设相反,是指样本数据性质与总体数据性质差异较大。

t分布

我们所处的世界中的数据,大多数数据除了符合正太分布之外,还有一种数据分布叫t分布,这个分布的图形与正太分布的图形形状是一样的,区别在于95%数据覆盖宽度比正太分布要宽一些,准确值是以均值为中心,左右2.26倍个标准差,因为左右覆盖宽度要宽一些,通常下在评估样本数据与总体数据差异时,我们都采用t分布检验,也叫均值差异检验

好了,主要的统计学概念先介绍到这里,下面以一个实例来说明,如果还涉及到一些统计学概念再做补充说明。

假设某个业务系统成功率对外宣传为90%,我们手上目前经过抽样发送交易处理结果得到15天成功率数据,如下图:

下面我用python中统计学包scipy对这些数据作一个t分布检验,看看从样本数据能得出什么结果,分析结果如下图所示:

回到监控上来,我们也可以采用抽样的方式搜集样本数据,据此来评估系统总体数据性质,如果发现达不到预期,再采用全量数据分析的方式,事后全量分析,是不影响在线系统交易处理的,而且拿到总体数据更全,根据交易日志提取的交易数据基本是相当全的了,这是不是另一种比较可行的系统监控方式呢,等有时间了再来做一次系统性的评测吧。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180104G00Z9K00?refer=cp_1026

扫码关注云+社区