Fra*_*iat 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
Run Code Online (Sandbox Code Playgroud)
当我尝试执行任何操作(设备、乘法、加法、减法)时,例如:
fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}
Run Code Online (Sandbox Code Playgroud)
普罗米修斯返回:
no data
Run Code Online (Sandbox Code Playgroud)
当我在 Prometheus 表达式浏览器中单独查询每个指标时,我确实得到了指标值。
怎么了?
Fra*_*iat 24
当 prometheus 对表达式求值时,该操作隐式应用于共享相同标签集的指标。
尽管我指定了指标名称和大多数标签,但 Prometheus 一直在寻找具有相同标签集的指标。
但是,在这种情况下,两个指标具有不同的标签值,因此无法匹配!(一个指标有metric="Used"另一个有metric="Total"。可能是其中一个指标有一些额外的标签)。
解决方案是使用ignore(或on)来减少考虑的标签集:
fs_bytes{instance="localhost:9108",metric="Used"} / ignoring(metric) fs_bytes{instance="localhost:9108",metric="Total"}
Run Code Online (Sandbox Code Playgroud)
阅读精美的手册!(这里)
| 归档时间: |
|
| 查看次数: |
8557 次 |
| 最近记录: |