Prometheus使用结果中的标签过滤查询结果

时间:2020-02-26 17:53:21

标签: prometheus promql

我正在尝试构建一个API,该API可以接受输入并根据我提供的输入来过滤数据。 假设我的输入将是类似的,

{
 "node":"IPAddress:9100",
 "cpu":"0"
}

我的普罗米修斯查询是(100-100 * node_cpu_seconds_total {mode =“ idle”})/ node_cpu_seconds_total。 这给了我所有目标的CPU使用率。

我想过滤掉与目标有关的数据,这些数据作为我的包装API的节点。因此,有什么功能或方法可以使我始终对查询结果进行过滤并从普罗米修斯那里获取数据。

例如,我想做

((100 - 100*node_cpu_seconds_total{mode="idle"})/node_cpu_seconds_total){instance="IPAddress:9100"}

这样我就只能得到我的节点的CPU使用率。我知道我们可以输入实例详细信息为

node_cpu_seconds_total{mode="idle",instance="prometheus"}

但是对于不同的查询,我必须将提供给我的api的过滤器放置在不同的位置,因此,如果有一种方法可以在最终获得结果后进行过滤,那就足以满足我的要求。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

我想出了一种使用and运算符的方法。我的查询现在看起来像

((100 - 100*node_cpu_seconds_total{mode="idle"})/node_cpu_seconds_total) and ({instance="localhost:9100"})

这是用我最后给出的过滤器过滤掉我的数据。

相关问题