PromQL if then 语句等效
PromQL if then statement equivalent
我有一个执行计数的简单 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
所做的)并且用户选择了开发或集成环境时,这将 return 实例数量增加一。
or
将同时包含三个指标,但由于查询和用户选择,只能 returned 一个指标。
我有一个执行计数的简单 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
所做的)并且用户选择了开发或集成环境时,这将 return 实例数量增加一。
or
将同时包含三个指标,但由于查询和用户选择,只能 returned 一个指标。