我有一个执行计数的简单 PromQL 查询:
sum(up{container_name="my-container",environment_name="$env"})
这是 Grafana 仪表板的一部分,允许从下拉菜单中选择 ${env}。
我想根据环境执行不同的查询。
我如何在 PromQL 中构造这样的东西:
if ${env} == 'dev' or ${env} == 'integration':
if sum(up{container_name="my-container",environment_name="$env"}) == 1:
sum(up{container_name="my-container",environment_name="$env"}) + 1
else:
sum(up{container_name="my-container",environment_name="$env"})
else:
sum(up{container_name="my-container",environment_name="$env"})
目的是错误地夸大计数,以在运行单个容器的环境中触发 RAG 状态面板中的健康阈值。
你可以这样查询:
(
sum(up{container_name="my-container", environment_name=~"dev|integration", environment_name="$env"}) + 1
AND
(sum(up{container_name="my-container", environment_name=~"dev|integration", environment_name="$env"} == 1)
)
OR
sum(up{container_name="my-container", environment_name=~"dev|integration", environment_name="$env"}) != 1
OR
sum(up{container_name="my-container", environment_name="prod", environment_name="$env"})
OR
on() vector(0)
当实例数量为 1 时,这将返回实例数量加一(这就是and
确实)并且用户选择了开发或集成环境。
这or
一次会返回三个指标,但由于查询和用户选择,只能返回一个指标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)