【问题标题】:Prometheus where/if clausePrometheus where/if 子句
【发布时间】:2021-05-03 20:20:00
【问题描述】:

我有一个查询,我只想在运行特定服务的主机上运行

伪代码看起来像

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

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

【问题讨论】:

    标签: prometheus grafana promql


    【解决方案1】:

    使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 2021-07-17
      相关资源
      最近更新 更多