减去费率和费率总和

Posted

技术标签:

【中文标题】减去费率和费率总和【英文标题】:Subtract rate and a sum of rates 【发布时间】:2020-08-25 21:28:31 【问题描述】:

具有网络传输指标,例如node_network_transmit_bytes_total from nodeexporter 我想知道一个接口的传输速率(在我的例子中是enp3s0)和所有网桥接口传输速率的总和。

我有这样的事情:

irate(node_network_transmit_bytes_totaldevice="enp3s0"[1m]) -  irate(node_network_transmit_bytes_totaldevice=~"br.*"[1m])

但这没有给我任何数据点。

编辑

我已经尝试过 Prometheus/PromQL subtract two gauge metrics 的建议,但我的情况有点不同,因为在右侧我有多个系列。

所以这个:

node_network_transmit_bytes_totaldevice="enp3s0" - ignoring(device) node_network_transmit_bytes_totaldevice=~"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_totaldevice="enp3s0" - ignoring(device) sum(node_network_transmit_bytes_totaldevice=~"br.*")

但这又不会产生任何结果。

EDIT2

我已经设法弄清楚如何通过

sum(node_network_transmit_bytes_totaldevice="enp3s0") by (instance) - sum (node_network_transmit_bytes_totaldevice=~"br.*") by (instance)

但我不能在上面使用irate

irate(sum(node_network_transmit_bytes_totaldevice="enp3s0") by (instance) - sum (node_network_transmit_bytes_totaldevice=~"br.*") by (instance))[5m]

执行查询时出错:1:149:解析错误:范围只允许用于向量选择器

【问题讨论】:

这能回答你的问题吗? Prometheus/PromQL subtract two gauge metrics @MichaelDoubez 我的情况有点不同。请检查我的编辑。 【参考方案1】:

好的,看来这是解决方案:

(sum(irate(node_network_receive_bytes_totaldevice="enp3s0"[1m])) by (instance))
 -
(sum(irate(node_network_receive_bytes_totaldevice=~"br.*"[1m])) by (instance))

【讨论】:

以上是关于减去费率和费率总和的主要内容,如果未能解决你的问题,请参考以下文章

源块中的费率是固定费率吗?

Microsoft Project - 从 Excel 电子表格导入资源费率

2021年POS机费率上调了吗?

2021年POS机费率上调了吗?

关于费率更改对于原有账单申请单影响的处理探讨

GoShippo API 不返回欧洲的费率