簡體   English   中英

Prometheus:合並二元運算中缺失標簽的值

[英]Prometheus: coalesce values for missing labels in binary operations

我有兩個帶有匹配標簽的指標,兩個計數器:

accounts_created_total{provider="auth0"} 738
accounts_created_total{provider="google} 980

accounts_deleted_total{provider="auth0"} 65

我想根據這兩個指標計算現有帳戶的數量。 我想出了這個:

accounts_created_total - accounts_deleted_total

# which results in

{provider="auth0"} 673

# Note the missing provider="Google"

不幸的是, provider="Google"沒有account_deleted_total ,所以我只得到provider="auth0"的結果。

有沒有辦法告訴普羅米修斯“彌補”丟失的標簽? 這通常相當於coalesce中的合並。

您可以使用OR 二元運算符完成時間序列:

vector1 或 vector2 生成一個向量,其中包含 vector1 的所有原始元素(標簽集 + 值)以及 vector2 的所有元素,這些元素在 vector1 中沒有匹配的 label 集。

假設您希望將accounts_deleted_total默認為 0,以下表達式使用accounts_created_total作為第二個向量來提取標簽並乘以 0 確保值被重置:

accounts_deleted_total OR (accounts_created_total * 0)

autho0的情況下,label 存在於accounts_deleted_total中,第二部分將不會被使用; 相反,對於google ,第二部分將產生

{provider="google"} 0

最后,您可以在表達式中使用它:

accounts_created_total - (accounts_deleted_total OR (accounts_created_total * 0))

在您的特定情況下,由於您使用相同的指標來提取標簽,您甚至可以將表達式簡化為:

(accounts_created_total - accounts_deleted_total) OR accounts_created_total

暫無
暫無

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

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