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类型,只有一个简单的返回值,通常用来记录一些对象或者事物的瞬时值

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

温度
内存使用量

3.2.2 Counters

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

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

服务请求数
任务完成数
错误出现次数

3.2.3 Histograms

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

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

流量最大值
流量最小值
流量平均值
流量中位值

3.2.4 Meters

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

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

平均每秒请求数
最近1分钟平均每秒请求数
最近5分钟平均每秒请求数
最近15分钟平均每秒请求数

3.2.5 Timers

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

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

请求时延
磁盘读时延

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

  • Gauges:

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

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

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

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

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

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()达到聚合整体观测的效果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux系统上安装Grafana,可以按照以下步骤进行操作: 1. 打开终端,并使用root权限登录到系统。 2. 检查系统上是否已经安装了wget命令。可以在终端中输入"which wget"命令来检查。如果没有安装wget,可以使用以下命令来安装:sudo apt-get install wget(适用于Debian/Ubuntu系统)或sudo yum install wget(适用于CentOS/RHEL系统)。 3. 使用wget命令下载Grafana的安装包。可以在官方网站https://grafana.com/grafana/download中找到最新的Grafana版本。根据你的系统架构(32位或64位)选择相应的下载链接。例如,可以使用以下命令下载64位版本的Grafana:wget https://dl.grafana.com/oss/release/grafana-7.1.5.linux-amd64.tar.gz。 4. 解压下载的安装包。可以使用以下命令解压:tar -zxvf grafana-7.1.5.linux-amd64.tar.gz。 5. 进入解压后的Grafana目录。可以使用以下命令进入目录:cd grafana-7.1.5。 6. 启动Grafana服务器。可以使用以下命令启动:./bin/grafana-server。 7. 打开浏览器,并访问http://localhost:3000。这将打开Grafana的Web界面。 8. 在登录页面上,使用默认的初始用户名和密码(admin/admin)登录到Grafana。 9. 登录后,你可以根据需要进行配置和使用Grafana。 请注意,上述步骤是基于Linux系统的一般安装过程。具体的步骤可能会因系统版本和配置而有所不同。建议在安装前查阅Grafana官方文档以获取最新的安装指南和详细说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值