PromQL关联查询问题:size标签未在结果中显示
问题解决:PromQL关联指标后未显示size标签
你的问题出在对group_left(size)的用法理解有误:group_left()括号里的是右侧指标已存在的标签名称,作用是指定要从右侧指标保留到结果中的标签。但node_filesystem_size_bytes本身没有名为size的标签,所以这个写法不会添加任何新标签。
下面根据你的实际需求给出不同解决方案:
方案1:同时查看可用空间和总空间(最常用)
如果只是想同时获取每个设备的可用空间与总空间,不需要合并成单个指标,直接查询两个指标即可:
{__name__=~"node_filesystem_(avail|size)_bytes", instance="myhost"}
查询结果会包含所有匹配的时间序列,每个device对应的可用空间、总空间都会展示,在Grafana等工具中可以按device和__name__分组查看。
方案2:将总空间值作为新标签附加到可用空间指标
如果确实需要把总空间的数值作为新标签添加到可用空间的结果中,可以用以下技巧(利用乘法为0保留原数值,同时注入新标签):
node_filesystem_avail_bytes{instance="myhost"} * on(device,instance) group_left() (1 + label_replace(node_filesystem_size_bytes{instance="myhost"}, "filesystem_size", "$value", "", ".*") * 0)
这个查询会在node_filesystem_avail_bytes的结果中新增filesystem_size标签,值为对应设备的总空间大小,同时保留原有的可用空间数值。
额外:计算可用空间占比
如果你的真实需求是计算可用空间占总空间的比例,直接用除法即可:
node_filesystem_avail_bytes{instance="myhost"} / on(device,instance) group_left() node_filesystem_size_bytes{instance="myhost"}
结果会是每个设备的可用率,同时保留左侧指标的所有标签。
内容的提问来源于stack exchange,提问作者Simply Seth
相关产品推荐
相关产品推荐

