计算两个指标的比率时,Prometheus不返回任何数据

时间:2018-06-28 10:11:12

标签: prometheus promql

我想计算两个指标的比率,但没有数据...

我有一些指标:

fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"}   50.0
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"}   100.0

当我尝试执行任何操作(设备,乘法,加法,减法)时:

fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}

普罗米修斯被迫退出:

no data

当我在Prometheus表达式浏览器中单独查询每个指标时,我确实获得了指标值。

怎么了?

1 个答案:

答案 0 :(得分:2)

当prometheus评估表达式时,该操作隐式应用于共享相同标签集的度量。

尽管我指定了指标名称和大多数标签,但Prometheus仍在寻找具有相同标签集的指标。

但是,在这种情况下,两个指标具有不同的标签值,因此它们不能匹配! (一个指标具有metric="Used",另一个指标具有metric="Total")。

解决方案是使用ignore(或on)来减少考虑的标签集:

fs_bytes{instance="localhost:9108",metric="Used"} / ignoring(metric) fs_bytes{instance="localhost:9108",metric="Total"}

阅读精美的手册! (here