完整譯文請訪問:http://www.coderdocument.com/docs/prometheus/v2.14/prometheus/querying/operators.html。
二元運算符
Prometheus的查詢語言支持基本的邏輯運算符和算術運算符。對於兩個瞬時向量之間的操作,可以修改匹配行爲。
算術二元運算符
Prometheus中存在以下二元算術運算符:
+
(加)-
(減)*
(乘)/
(除)%
(取模)^
(乘方)
二元算術運算符定義在標量與標量、向量與標量和向量與向量值對之間。
兩個標量之間:其行爲很明顯,它們對另一個標量求值,該標量是對兩個標量操作數應用運算符的結果。
瞬時向量與標量之間:該運算符應用於向量中每個數據採樣值。例如,如果一個時間序列的瞬時向量乘以2,結果是另外一個向量,其中原向量的每個採樣值都乘以2。
兩個瞬時向量之間:將一個二元算術運算符應用於左側向量中的每個條目以及右側向量中的匹配元素。將結果傳播至結果向量中,分組標籤成爲輸出標籤集合。指標名稱將被丟棄。在右側向量中不匹配的條目不會出現在結果向量中。
比較二元運算符
Prometheus中存在以下比較二元運算符:
==
(等於)!=
(不等於)>
(大於)<
(小於)>=
(大於等於)<=
(小於等於)
比較運算符定義在標量與標量、向量與標量和向量與向量值對之間。默認情況下,它們會進行過濾。可以通過在操作符之後提供bool
修飾符來修改它們的行爲,該操作符將返回0
或1
,而不是進行過濾。
兩個標量之間:必須提供bool
修飾符,這些運算符將生成另一個標量,該標量是0
(false
)或1
(true
),具體取決於比較結果。
瞬時向量與標量之間:將這些運行符應用於向量中每個數據採樣值,將比較結果爲false
的向量元素從結果向量中刪除。如果提供了bool
修飾符,那麼比較結果爲false
的向量元素會被丟棄,並且將其值設置爲0
,被保留的向量元素的值設置爲1
。
兩個瞬時向量之間:默認情況下,這些運算符表現爲一個過濾器,應用於匹配的條目。對於表達式不爲真或在表達式另一側沒有找到匹配項的向量元素,將從結果中刪除,而其他元素將傳播到結果向量中,而分組標籤將成爲輸出標籤集合。如果提供了bool
修飾符,那麼將被丟棄的向量元素的值爲0
,將被保留的向量元素的值爲1
,分組標籤再次成爲輸出標籤集合。
完整譯文請訪問:http://www.coderdocument.com/docs/prometheus/v2.14/prometheus/querying/operators.html。