如何解决PromQL if then 语句等效
我有一个简单的 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="$env"} == 1)
)
OR
sum(up{container_name="my-container",environment_name="$env"}) != 1
OR
sum(up{container_name="my-container",environment_name="prod",environment_name="$env"})
OR
on() vector(0)
当实例数量为 1(这就是 and
所做的)并且用户选择了开发或集成环境时,这将返回增加 1 的实例数量。
or
将同时包含三个指标,但由于查询和用户选择的原因,只能返回一个指标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。