跳到主要内容

仪表盘

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

标准仪表盘可视化

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

选择仪表盘

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

内存使用率

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

属性设置

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

多个节点

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

转换器

条形仪表盘

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

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

Bar gauge

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

CPU使用率

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

内存使用率

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

文件系统大小指标

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

过滤文件系统

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

最大值

获取到了最大的分区后就可以来方便的计算分区的使用率了,比如查询 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)))),然后通过正则表达式来获取定义的参数值:

定义最大挂载点参数

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

(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

最大分区使用率

最终的效果如下图所示:

仪表盘