50.percentiles百分比算法以及网站延时统计

主要知识点

  • percentiles的用法

   

现有一个需求:比如有一个网站,记录下了每次请求的访问的耗时,需要统计tp50tp90tp99

  • tp5050%的请求的耗时最长在多长时间
  • tp9090%的请求的耗时最长在多长时间
  • tp9999%的请求的耗时最长在多长时间

   

一、准备数据

1、建立mappings

   

PUT /website

{

"mappings": {

"logs":{

"properties": {

"latency":{"type": "long"},

"province":{"type": "keyword"},

"timestamp":{"type":"date"}

}

}

}

}

2、批量插入数据

   

POST /website/logs/_bulk

{ "index": {}}

{ "latency" : 105, "province" : "江苏", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 83, "province" : "江苏", "timestamp" : "2016-10-29" }

{ "index": {}}

{ "latency" : 92, "province" : "江苏", "timestamp" : "2016-10-29" }

{ "index": {}}

{ "latency" : 112, "province" : "江苏", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 68, "province" : "江苏", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 76, "province" : "江苏", "timestamp" : "2016-10-29" }

{ "index": {}}

{ "latency" : 101, "province" : "新疆", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 275, "province" : "新疆", "timestamp" : "2016-10-29" }

{ "index": {}}

{ "latency" : 166, "province" : "新疆", "timestamp" : "2016-10-29" }

{ "index": {}}

{ "latency" : 654, "province" : "新疆", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 389, "province" : "新疆", "timestamp" : "2016-10-28" }

{ "index": {}}

{ "latency" : 302, "province" : "新疆", "timestamp" : "2016-10-29" }

   

二、pencentiles操作

1、查找tp50tp90tp99

   

GET /website/logs/_search

{

"size": 0,

"aggs": {

"latency_percentiles": {"percentiles": {"field": "latency","percents": [50,90,99]}},

"latency_late":{"avg": {"field": "latency"}}

}

}

   

执行结果如下:

   

"aggregations": {

"latency_late": {

"value": 201.91666666666666

},

"latency_percentiles": {

"values": {

"50.0": 108.5,

"90.0": 380.3,

"99.0": 624.8500000000001

}

}

}

}

注意是的,这个tp50等,均不是求里面的最大值,es经过了计算,但是这个计算到是是怎么个计算,我现在也还不知。

   

2、查看各省的情况

确定是那些省份比较慢

   

GET /website/logs/_search

{

"size": 0,

"aggs": {"group_by_province":{

"terms": {"field": "province"},

"aggs": {

"latency_percentiles": {"percentiles": {"field": "latency","percents": [50,90,99]}},

"latency_late":{"avg": {"field": "latency"}}

}

}

}

}

   

{

"aggregations": {

"group_by_province": {

"doc_count_error_upper_bound": 0,

"sum_other_doc_count": 0,

"buckets": [

{

"key": "新疆",

"doc_count": 6,

"latency_late": {

"value": 314.5

},

"latency_percentiles": {

"values": {

"50.0": 288.5,

"90.0": 521.5,

"99.0": 640.75

}

}

},

{

"key": "江苏",

"doc_count": 6,

"latency_late": {

"value": 89.33333333333333

},

"latency_percentiles": {

"values": {

"50.0": 87.5,

"90.0": 108.5,

"99.0": 111.65

}

}

}

]

}

}

}

可以看出新僵的网比较慢,所以要对新疆作处理。

转载于:https://www.cnblogs.com/liuqianli/p/8535910.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: A:这是使用Pandas库中的DataFrame描述统计量函数describe()对DataFrame df进行描述统计,其中percentiles参数指定了需要计算的分位数值。该语句将会计算df中10%、20%、30%、40%、50%、60%、70%、80%、90%分位数的值。 ### 回答2: df.describe(percentiles=[.1,.2,.3,.4,.5,.6,.7,.8,.9])是一个用于计算数据框df的描述统计信息的函数。在默认情况下,describe()函数会计算df中的数值型列的基本统计量,包括数量、均值、标准差、最小值、25%分位数、中位数(50%分位数)、75%分位数和最大值。 在这个特定的例子中,通过指定percentiles参数为[.1,.2,.3,.4,.5,.6,.7,.8,.9],函数还会计算出每个数值型列的额外分位数。所谓分位数,指的是将整个数据集按照大小顺序排列后,将其分成100等分或其他百分比等分的点。在这个例子中,分位数包含了0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8和0.9这九个百分位数。计算这些分位数可以提供更详细的数据分布信息。 通过运行这个函数,我们可以得到一个新的数据框dfdes,其中包含了原始数据框df各个数值型列的描述统计信息,以及额外的九个分位数。这些统计信息可以帮助我们了解数据的分布、集中趋势和离散程度,从而进行数据分析和决策制定。 ### 回答3: 这段代码是对一个DataFrame(df)进行描述性统计分析的操作。describe()函数会计算出DataFrame中各个数值型(numeric)列的统计量,包括计数(count)、均值(mean)、标准差(std)、最小值(min)、第一四分位数(25%)、中位数(50%)、第三四分位数(75%)、最大值(max)等。通过添加percentiles参数,可以指定额外计算其他百分位数的值。 在这个例子中,percentiles参数设置为[.1,.2,.3,.4,.5,.6,.7,.8,.9],意味着除了计算标准的百分位数之外,还会额外计算第10%、第20%、第30%、第40%、第60%、第70%、第80%、第90%的百分位数。 通过这个操作,我们可以得到DataFrame中各个数值型列的更详细的统计信息,了解数据分布的具体情况。这对于数据探索和分析非常有帮助,可以揭示数据的异常值、集中趋势、离散程度等特征。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值