1、Grafana添加表格面板
1.1、添加表格面板
接下来我们以统计服务器资源为例,对表格面板的使用进行说明。比如通过表格展示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 面板:

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

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

这显然是非常不友好的显示方式,我们需要将这些表格内容合并成一个表格进行展示,这个时候就需要用到 Grafana 的 Transform 转换功能了,在 Transform 选项卡中选择 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 转换器,该转换器允许用户重新排序、隐藏或重命名字段或者列。

3、属性覆盖
上面我们将查询的数据结果用一个表格展示出来了,但是现在我们的数据都是直接的一个结果,我们需要进行转换加上我们的单位。

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

评论区