0
点赞
收藏
分享

微信扫一扫

Grafana 仪表盘


仪表盘

如果想展示与最大值和最小值相关的数据,我们可以选择使用仪表盘面板,比如我们用一个仪表盘面板来展示内存使用率。

标准仪表盘可视化

在 Dashboard 页面上点击创建一个新的空面板,在面边编辑器右上方选择 ​​Gauge​​ 类型的面板:

Grafana 仪表盘_查询语句

然后添加如下所示的查询语句,获取内存使用率:

Grafana 仪表盘_数据_02

接下来在右侧属性区域设置单位、最小值为 0、最大值为 100:

Grafana 仪表盘_最小值_03

同样的,如果选择多个节点的时候显示不够友好:

Grafana 仪表盘_最小值_04

需要在 Legend 地方配置显示的标签 ​​{{instance}}​​​,然后添加一个 ​​Rename by regex​​ 的转换器:

Grafana 仪表盘_最小值_05

条形仪表盘

除了上面标准的仪表盘面板之外,还有条形仪表盘,该面板可以显示一个或多个条形仪表,同样我们可以用来展示 CPU 使用率、内存使用率等。比如这里我们用条形仪表盘来进行展示。

点击添加一个新的空面板,在面板编辑器右侧选择 ​​Bar gauge​​:

Grafana 仪表盘_Prometheus_06

然后接着添加 CPU 使用率的查询:

Grafana 仪表盘_最小值_07

查询语句添加完成后,在右侧属性配置中设置 ​​Bar gauge​​​ 的展示方向为水平 ​​Horizontal​​​ 方向,显示模式为 ​​Retro LCD​​​,同时设置显示的单位为 ​​Percent (0-100)​​,最小值为 0.1,最大值为 100,这样就将 CPU 使用率用条形仪表盘的形式展示出来了,用同样的方式添加内存使用率的展示:

Grafana 仪表盘_查询语句_08

比如我们还可以添加一个最大分区的使用率,要获取该监控数据,首先我们就要先获取最大的分区目录,这里要使用的指标是 ​​node_filesystem_size_bytes​​:

Grafana 仪表盘_数据_09

首先我们要过滤掉不是 ​​ext3(4)​​​ 或者 ​​xfs​​​ 类型的文件系统 ​​node_filesystem_size_bytes{fstype=~"ext.?|xfs"}​​:

Grafana 仪表盘_数据_10

然后可以按照挂载点 ​​mountpoint​​​ 大小进行排序,获取最大的一个结果 ​​topk(1,sort_desc(max(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}) by (mountpoint)))​

Grafana 仪表盘_数据_11

获取到了最大的分区后就可以来方便的计算分区的使用率了,比如查询 node1 节点的根分区 ​​/​​ 的使用率:

(node_filesystem_size_bytes{instance=~"node1:9100", fstype=~"ext.?|xfs", mountpoint="/"} - node_filesystem_free_bytes{instance=~"node1:9100", fstype=~"ext.?|xfs", mountpoint="/"}) / node_filesystem_size_bytes{instance=~"node1:9100", fstype=~"ext.?|xfs", mountpoint="/"} * 100

要在 Grafana 的面板中查询最大分区使用率,这里我们需要先将最大分区的获取通过参数进行配置,添加一个名为 ​​maxpoint​​​ 的参数,查询语句为 ​​query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'node1:9100',fstype=~"ext.?|xfs"}) by (mountpoint))))​​,然后通过正则表达式来获取定义的参数值:(如果不希望将变量以下拉框的形式显示,那么就Hide)

Grafana 仪表盘_Prometheus_12

这样在面板中要查询的最大分区使用率语句如下所示:

(node_filesystem_size_bytes{instance=~"$host", fstype=~"ext.?|xfs", mountpoint="$maxpoint"} - node_filesystem_free_bytes{instance=~"$host", fstype=~"ext.?|xfs", mountpoint="$maxpoint"}) / node_filesystem_size_bytes{instance=~"$host", fstype=~"ext.?|xfs", mountpoint="$maxpoint"} * 100

Grafana 仪表盘_数据_13

最终的效果如下图所示:

Grafana 仪表盘_查询语句_14

sort_desc (max(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}) by(mountpoint) ) 

Grafana 仪表盘_数据_15

举报

相关推荐

0 条评论