【发布时间】:2020-08-25 21:28:31
【问题描述】:
具有网络传输指标,例如node_network_transmit_bytes_total from nodeexporter 我想知道一个接口的传输速率(在我的例子中是enp3s0)和所有网桥接口传输速率的总和。
我有这样的事情:
irate(node_network_transmit_bytes_total{device="enp3s0"}[1m]) - irate(node_network_transmit_bytes_total{device=~"br.*"}[1m])
但这没有给我任何数据点。
编辑
我已经尝试过 Prometheus/PromQL subtract two gauge metrics 的建议,但我的情况有点不同,因为在右侧我有多个系列。
所以这个:
node_network_transmit_bytes_total{device="enp3s0"} - ignoring(device) node_network_transmit_bytes_total{device=~"br.*"}
产量:
执行查询时出错:在操作右侧找到匹配组 {instance="192.168.XZ:9100", job="nodeexporter"} 的重复系列:[{name="node_network_transmit_bytes_total", device="br-XXXX", instance="192.168.XZ:9100", job="nodeexporter"}, {name="node_network_transmit_bytes_total", device="br- 5d6dce95c2b0", instance="192.168.XZ:9100", job="nodeexporter"}];不允许多对多匹配:匹配的标签在一侧必须是唯一的
我尝试过使用sum():
node_network_transmit_bytes_total{device="enp3s0"} - ignoring(device) sum(node_network_transmit_bytes_total{device=~"br.*"})
但这又不会产生任何结果。
EDIT2
我已经设法弄清楚如何通过
sum(node_network_transmit_bytes_total{device="enp3s0"}) by (instance) - sum (node_network_transmit_bytes_total{device=~"br.*"}) by (instance)
但我不能在上面使用irate:
irate(sum(node_network_transmit_bytes_total{device="enp3s0"}) by (instance) - sum (node_network_transmit_bytes_total{device=~"br.*"}) by (instance))[5m]
执行查询时出错:1:149:解析错误:范围只允许用于向量选择器
【问题讨论】:
-
这能回答你的问题吗? Prometheus/PromQL subtract two gauge metrics
-
@MichaelDoubez 我的情况有点不同。请检查我的编辑。
标签: prometheus prometheus-node-exporter