簡體   English   中英

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所做的)並且用戶選擇了開發或集成環境時,這將返回實例數量增加一。 or將同時三個指標,但由於查詢和用戶選擇,只能返回一個指標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM