普罗米修斯 where/if 子句

Prometheus where/if clause

我想查询 运行 仅在具有特定服务的主机上 运行ning

伪代码看起来像

windows_os_virtual_memory_bytes 
where
windows_service_state{name="sense",state="running"} == 1

这样我只有在 name="sense" 的服务处于活动状态时才能获得虚拟内存

使用 on 子句来匹配标签。在这种情况下,

windows_os_virtual_memory_bytes > 0 and  on(instance) (windows_service_state{name="sense",state="running"} == 1) 

因此必须满足两个条件 (and) 其中 instance 匹配。您可以在 on() 函数中使用标签向量。

https://prometheus.io/docs/prometheus/latest/querying/operators/#one-to-one-vector-matches