一、环境
主机名 | IP地址 | 系统 | 说明 |
localhost | 192.168.11.61 | Ubuntu 20.04 | docker安装的prometheus,grafana版本:9.4.3 |
test | 192.168.11.62 | Ubuntu 20.04 |
二、Grafana添加表格面板
添加表格面板
接下来我们以统计服务器资源为例,对表格面板的使用进行说明。比如通过表格展示Linux服务器总内存、总 CPU 数、带宽等信息,接下来分别添加如下查询:
-
总内存:
node_memory_MemTotal_bytes{instance=~"$instance"} -
CPU 核数:
count(node_cpu_seconds_total{instance=~"$instance", mode='system'}) by (instance) -
连接数:
node_netstat_Tcp_CurrEstab{instance=~"$instance"} -
下行带宽:
max(rate(node_network_receive_bytes_total{instance=~"$instance"}[$interval])*8) by (instance) -
上行带宽:
max(rate(node_network_transmit_bytes_total{instance=~"$instance"}[$interval])*8) by (instance)
如还有其他需要展示的也可以直接添加新的查询即可
在 Dashboard 中添加添加一个空的 Panel 面板,进入面板编辑器后在右侧上方选择 Table 面板:

添加完成后如下图:

可以看到数据是以时间序列展示的,我们需要修改下:

当每个query都修改后,就变成了如下图:

表格转换
现在我们将所有需要展示的信息都通过 Table 形式展示出来了,但是现在有一个很大的问题,就是需要对每一个查询切换显示:
-
每一个query显示一个表格(因为有5个query,所以有5个表格可以选择)

这显然是非常不友好的显示方式,我们需要将这些表格内容合并成一个表格进行展示,这个时候就需要用到 Grafana 的 Transform 转换功能了,在 Transform 选项卡中选择 Merge 选项

Merge 转换器可以合并多个序列或者多个表格为一个表格,其中可合并的值将合并到同一行中,用于显示在表格中可视化的多个序列、表格或两者的组合。当我们选择了 Merge 转换器过后就会将上面的多个查询结果合并成一个表格。

但其实合并后的表格数据有一些地方没有显示,这是因为我们查询的结果实际上是包含 __name__ 这个标签的,在合并的时候会造成数据丢失,我们可以将所有的查询语句后面添加上一个 - 0 来去掉这个标签,这样合并的时候就不会丢失数据了。比如查询主机信息的语句变成 node_uname_info{job="node-exporter"} - 0,其他的语句也都加上 - 0 这个操作。

全部加上-0后,PromQL表达式变成如下:
-
总内存:
node_memory_MemTotal_bytes{instance=~"$instance"} - 0 -
CPU 核数:
count(node_cpu_seconds_total{instance=~"$instance", mode='system'}) by (instance) - 0 -
连接数:
node_netstat_Tcp_CurrEstab{instance=~"$instance"} - 0 -
下载带宽:
max(rate(node_network_receive_bytes_total{instance=~"$instance"}[$interval])*8) by (instance) - 0 -
上传带宽:
max(rate(node_network_transmit_bytes_total{instance=~"$instance"}[$interval])*8) by (instance) - 0
数据虽然正确了,但是表头却看不出来是表达的什么意义,有的列还是不需要的,这个时候同样也要用到 Transform 转换器了,这里我们需要用到的是 Organize fields 转换器,该转换器允许用户重新排序、隐藏或重命名字段或者列。
这里我们将不需要的一些列隐藏掉了,将表头进行了重命名。
属性覆盖
上面我们将查询的数据结果用一个表格展示出来了,但是现在我们的数据都是直接的一个结果,我们需要进行转换加上我们的单位。

比如对于总内存这一列,我们需要添加覆盖,设置一个 bytes 类型的单位,然后会根据我们的结果进行自动转换:

同样对下行和上行宽带这两列的数据结果进行覆盖,添加 bytes/sec(IEC) 类型的单位:

此外在定制某列数据的显示效果的时候我们还可以为其配置背景颜色,只需要设置Cell Options>Cell Type ,该属性可以配置文本颜色、背景等方式:如下图:

修改背景颜色为绿色:
Shandard options > Color scheme 如下图:

评论区