• 51.percentiles rank以及网站访问时延SLA统计


    主要知识点:

    • percentile_ranks的用法
    • percentile的优化

       

    一、percentile_ranks的用法

    SLA:就是所提供的服务的标准。 比如一个网站的提供的访问延时的SLA,确保所有的请求100%都必须在200ms以内,在大公司内一般都是要求100%200ms以内,如果超过1s,则需要升级到A级故障,代表网站的访问性能和用户体验急剧下降。

    现有一个需求:在200ms以内的有百分之多少,在1000毫秒以内的有百分之多少,对于这个需求就要用到percentile ranks metric这个方法,这个percentile ranks,在实际工作中比pencentile还要常用。他可以统计电商系统中按照品牌分组,计算,电视机,售价在1000元的占比,在2000以内的占比,3000占元以内的占比等等。

       

    语法如下:

       

    GET /website/logs/_search

    {

    "size": 0,

    "aggs": {

    "group_by_province": {

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

    "aggs": {

    "latency_percentile_ranks": {

    "percentile_ranks": {"field": "latency","values": [200,1000]}

    }

    }

    }

    }

    }

       

    执行结果如下:

    "aggregations": {

    "group_by_province": {

    "doc_count_error_upper_bound": 0,

    "sum_other_doc_count": 0,

    "buckets": [

    {

    "key": "新疆",

    "doc_count": 6,

    "latency_percentile_ranks": {

    "values": {

    "200.0": 29.40613026819923,

    "1000.0": 100

    }

    }

    },

    {

    "key": "江苏",

    "doc_count": 6,

    "latency_percentile_ranks": {

    "values": {

    "200.0": 100,

    "1000.0": 100

    }

    }

    }

    ]

    }

    }

    }

       

    二、percentile的优化

       

    percentile_ranks在es底层用的是TDigest算法,他会用很多节点来执行百分比的近似估计计算,当然也会有误差,但是所用到的节点越多越精准。

    compression参数就是用来限制节点数量,默认compression的值是100,也就是compression * 20 = 2000node去参与计算,compression越大,占用内存越多,越精准,性能越差

    一个节点占大约占用32字节,100 * 20 * 32 = 64KB。如果你想要percentile算法越精准,compression可以设置的越大

  • 相关阅读:
    JQuery中jqGrid分页实现
    给jqGrid数据行添加修改和删除操作链接(之一)
    jquery 更新了数据库后局部刷新
    JS图片另存为(转)
    RFID系统集成公司
    R语言数据文件读写
    matlab当前目录下的相对路径
    转载:勤奋在科研中究竟有多重要?
    大型网站的架构设计问题大型高并发高负载网站的系统架构
    大型网站运维探讨和心得
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8535915.html
Copyright © 2020-2023  润新知