Prometheus使用结果中的标签筛选查询结果

Prometheus使用结果中的标签筛选查询结果,prometheus,promql,Prometheus,Promql,我正在尝试构建一个API,它可以接受输入并根据我提供的输入过滤数据。 假设我的输入是这样的 { "node":"IPAddress:9100", "cpu":"0" } 我的prometheus查询是(100-100*node\u cpu\u seconds\u total{mode=“idle”})/node\u cpu\u seconds\u total。 这给了我所有目标的cpu使用率 我想过滤掉与目标相关的数据,将其作为节点提供给包装器API。那么,有没有什么函数或方法可以让我总是

我正在尝试构建一个API,它可以接受输入并根据我提供的输入过滤数据。 假设我的输入是这样的

{
 "node":"IPAddress:9100",
 "cpu":"0"
}
我的prometheus查询是(100-100*node\u cpu\u seconds\u total{mode=“idle”})/node\u cpu\u seconds\u 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的过滤器放置在不同的位置,因此,如果有一种方法可以在最后得到结果后进行过滤,那么它就满足了我的要求


有办法做到这一点吗?

我通过使用and运算符找到了一种方法。我现在的问题是

((100 - 100*node_cpu_seconds_total{mode="idle"})/node_cpu_seconds_total) and ({instance="localhost:9100"})
这是用我最后给出的过滤器过滤掉我的数据