• Grafana-web使用说明


    本文分别记录了:

    • Grafana使用步骤
    • P50 P99 min max m1_rate等指标分别是什么意思,Metrics为何不会对“吞吐量”指标记录P99 min 等聚合
    • Metrics常用的几种记录方式(我司用了两种)

    1.场景

    • Metrics收集日志交给Graphite(Graphite本身也可以做为监控,但我们只是把他作为了一个数据存储,对grafana提供数据接口),Grafana做数据展示

    • Grafana的数据来源于Graphite(由Metrics收集),其监控方式也是通过不停轮询(所以在Grafana中也叫新建query),如果Graphite中没有数据,Grafana中自然也不会显示,举个例子:

      1. 启动了Spring项目,但没有访问接口(此时接口被Metric记录),此时Grafana甚至都不知道是哪个“project”
      2. 请求接口,如果Metric记录了log(“myType . myMetric_key . myMetric_value1”) ,则只会在Grafana中出现value1的选项,不会出现value2(直到log记录到了value2)
    • 上述这个“Metric记录后才有选项”的特性十分重要,涉及到Grafana中的新建query是否有提示

    2.web界面操作步骤

    2.1创建仪表盘dashboard

    仪表盘dashboard属于是最外层,在里面还可以创建row(一个小分组),创建query(一个实际的监测指标)

    2.2配置仪表盘dashboard

    通用设置

    变量设置:这里主要是为了后续配置query时能直接用$host $metric来默认指定

    2.3盘内新建分组row

    创建一行,后续可以鼠标放上去设置名字

    2.4新建监测指标query

    还是上面那个图,点“Add Query”即可

    3.统计度量

    3.1Metrics统计度量类型

    Metrics提供了五种基本的度量类型:

    • Gauges:计量器
    • Counters:计数器
    • Histograms:直方图
    • Timers:计时器
    • Meters:TPS计数器

    一般来说最后两个满足了绝大部分监控的场景

    3.2适用场景

    3.2.1 Gauges

    Gauges中文名称可以翻译为计量器。它可以表示一个既可以增加, 又可以减少的度量指标值。它是最简单和最基本的Metrics类型,只有一个简单的返回值,通常用来记录一些对象或者事物的瞬时值

    计量器的典型使用场景包括:

    温度
    内存使用量
    
    • 1
    • 2

    3.2.2 Counters

    Counters中文名称可以翻译为计数器。它是一种累计型的度量指标,数值只能单调递增。

    计数器的典型使用场景包括:

    服务请求数
    任务完成数
    错误出现次数
    
    • 1
    • 2
    • 3

    3.2.3 Histograms

    Histograms中文名称可以翻译为直方图。它可以用来度量流数据中value的分布情况,Histrogram可以计算最大/小值、平均值,方差,分位数(如中位数,或者95th分位数),如75%,90%,98%,99%的数据在哪个范围内。最大的特点是提供了多种多样的数据统计方式。

    直方图的典型使用场景包括:

    流量最大值
    流量最小值
    流量平均值
    流量中位值
    
    • 1
    • 2
    • 3
    • 4

    3.2.4 Meters

    Meters中文名称可以翻译为TPS计数器。它是一种只能自增的计数器通常用来度量一系列事件发生的比率(例如记录succeed和failed可以直到接口成功率)。他提供了平均速率,以及指数平滑平均速率,以及采样后的1分钟,5分钟,15分钟速率。

    TPS计数器的典型使用场景包括:

    平均每秒请求数
    最近1分钟平均每秒请求数
    最近5分钟平均每秒请求数
    最近15分钟平均每秒请求数
    
    • 1
    • 2
    • 3
    • 4

    3.2.5 Timers

    Timers中文名称可以翻译为计时器。Histogram跟Meter的一个组合,另外还提供了对于某段代码执行的耗时的统计及计算功能。

    计时器的典型使用场景包括:

    请求时延
    磁盘读时延
    
    • 1
    • 2

    3.3各度量类型提供的属性(非重点)

    • Gauges:

         属性 value (某个属性实时值变化)
      
      • 1
    • Counter:

        属性count (定时时间间隔之内的请求总数)
      
      • 1
    • Histrogram:

        属性 count(定时时间间隔之内的请求总数)
        属性 min(定时时间间隔内请求参数的最小值)
        属性 max(定时时间间隔内请求参数的最大值)
        属性 mean(定时时间间隔内请求参数的平均值)
        属性 stddev(定时时间间隔内请求参数的方差)
        属性 median(定时时间间隔内请求参数的中位数)
        属性rate_unit(比率记录单位)
        属性 75% <=(75百分位)
        属性 95% <=(95百分位)
        属性 98% <=(98百分位)
        属性 99% <=(99百分位)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
    • Meters:

        属性 count(定时时间间隔之内的请求总数)
        属性 meanRate(平均每秒请求数(时间间隔内总请求数/定时任务时间间隔))
        属性 oneMinuteRate(最近1分钟平均每秒请求数)
        属性 FiveMinuteRate(最近5分钟平均每秒请求数)
        属性 FifteenMinuteRate(最近15分钟平均每秒请求数)
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • Timer:

        属性 count(定时时间间隔之内的请求总数)
        属性 meanRate(平均每秒请求数(时间间隔内总请求数/定时任务时间间隔))
        属性 oneMinuteRate(最近1分钟平均每秒请求数)
        属性 FiveMinuteRate(最近5分钟平均每秒请求数)
        属性 FifteenMinuteRate(最近15分钟平均每秒请求数)
        属性 min(定时时间间隔统计数据的最小值)
        属性 max(定时时间间隔统计数据的最大值)
        属性 mean(定时时间间隔内统计数据的平均值)
        属性 stddev(定时时间间隔内统计数据的方差)
        属性 median(定时时间间隔内统计数据的中位数)
        属性 rate_unit(比率记录单位)
        属性 duration_unit(时间数值单位)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

    3.4我司常用指标

    监控指标一般分为两大类:

    • 离散的有限状态:如:调用Metrics的meter.mark(k,v),v的选择是有限且离散的(如succeed和failed)
    • 连续的无限状态:如:调用Metrics的指定key值对应的timer对象:timer.update(value,TimeUnit.MILLISECONDS),value就是一个连续无限的“end-start时间”

    3.4.1 P系列指标解释

    p50, p90, p99(或者写作pct 50,pct90,pct 99)都是数据聚合统计一种方式,跟百分比相关(p的含义是percentile)。

    p50:数据集按升序排列,第50分位置大的数据(即升序排列后排在50%位置的数据)。
    p90:数据集按升序排列,第90分位置大的数据(即升序排列后排在90%位置的数据)。
    p99:数据集按升序排列,第99分位置大的数据(即升序排列后排在99%位置的数据)。
    P99.9:同上,精度到达99.9%,一般用P99和P99.9来展示绝大部分用户的接口响应时间,满足绝大部分用户的体验

    3.4.2 统计函数指标

    “stddev”: 方差

    “count”: 总次数

    max”: 最长时间

    mean”: 平均时间

    min”: 最短时间

    3.4.3 比率相关(x分钟内平均)

    “m15_rate”: 15分钟 请求数/每秒的比率

    m1_rate”: 1分钟内 请求数 / 每秒 即OPS

    “m5_rate”: 5分钟 请求数/每秒的比率

    “mean_rate”:平均每秒请求数

    “duration_units”: “seconds”,//该Timer的单位

    “rate_units”: “calls/second”//比率单位

    4.统计指标在Grafana中的体现

    4.1连续无限:timer.update()


    当我们记录了一条值,调用了一次这个方法,刚刚注册过的一堆指标都能选了

    4.2离散有限:meter.mark()

    但是如果调用meter.mark(),就只能看到一些离散的结果值,因为Metrics不会对这种值进行计算“平均值,百分值”等,想想也不合理嘛

    5.functions函数

    一般来说常用的就两个:sumSeries()maxSeries(),用于观测整体status状态,host来自多个数据源时,通过聚合函数可以将其合并达到观测整体的效果

    5.1maxSeries()监测整体最大延迟

    • 对于记录响应时间Timer.updata()的指标(P99、max、mean、m1_rate),如果Grafana同时监测了多个host的数据源,每次P99、max等“响应指标”都会有多个(host几个就几个),这时候需要使用maxSeries()来取最大值,来监测99%的用户最大延迟是多少

    5.2sumSeries()监测整体数量

    • 对于记录响应结果状态Meter.mark()的指标(m1_rate),这种指标只有数量一说,因此只需要通过sumSeries()达到聚合整体观测的效果
  • 相关阅读:
    Keras深度学习实战(24)——从零开始构建单词向量
    JavaFX、合并碰撞的弹球
    数组转树形结构
    2022腾讯云学生服务器价格申请认证及购买攻略
    Semantic Segmentation
    图像的基本操作
    安装和初步使用 nn-Meter
    接口设计规范
    通达信自动交易股票下单程序,外挂软件不可信,实际上券商有现成的接口,个人账户就可以无门槛开启,代码示例
    共享停车位小程序,微信小程序停车场车位,微信小程序停车场系统毕设作品
  • 原文地址:https://blog.csdn.net/m0_56079407/article/details/127780050