promql中文手冊,Promsql語法用法
promql中文手冊,Promsql語法用法
Prometheus 提供了一種功能表達式語言 PromQL,允許用戶實時選擇和匯聚時間序列數據。表達式的結果可以在瀏覽器中顯示為圖形,也可以顯示為表格數據,或者由外部系統通過 HTTP API 調用。
時間序列過濾器
選擇指標名稱為 http_requests_total 的所有時間序列:
http_requests_total
promql中文手冊、可以通過向花括號 {} 里附加一組標簽來進一步過濾時間序列。例如:選擇指標名稱為 http_requests_total,job 標簽值為 prometheus,group 標簽值為 canary 的時間序列
http_requests_total{job="prometheus",group="canary"}
PromQL 還支持用戶根據時間序列的標簽匹配模式來對時間序列進行過濾,目前主要支持兩種匹配模式:完全匹配和正則匹配。總共有以下幾種標簽匹配運算符
= : 選擇與提供的字符串完全相同的標簽。
!= : 選擇與提供的字符串不相同的標簽。
=~ : 選擇正則表達式與提供的字符串(或子字符串)相匹配的標簽。
!~ : 選擇正則表達式與提供的字符串(或子字符串)不匹配的標簽。
例如:選擇指標名稱為 http_requests_total,環境為 staging、testing 或 development,HTTP 方法不為 GET 的時間序列
http_requests_total{environment=~"staging|testing|development",method!="GET"}
sql語句case when用法,我們還可以使用內置的 __name__
標簽來指定監控指標名稱。
例如:表達式 http_requests_total 等效于 {name=“http_requests_total”}
這樣的方式也支持正則。以下表達式表示選擇指標名稱以 http_requests 開頭的所有指標:
{__name__=~"http_requests.*"}
區間向量過濾器
區間向量與瞬時向量的工作方式類似,唯一的差異在于在區間向量表達式中我們需要定義時間選擇的范圍,時間范圍通過時間范圍選擇器 [] 進行定義,以指定應為每個返回的區間向量樣本值中提取多長的時間范圍。
plsql developer使用教程?時間范圍通過數字來表示,單位可以使用以下其中之一的時間單位:
s - 秒
m - 分鐘
h - 小時
d - 天
w - 周
y - 年
例如:選擇在過去 5 分鐘內指標名稱為 http_requests_total,job 標簽值為 prometheus 的所有時間序列:
we select all the values we have recorded within the last 5 minutes for all time series that have the metric name http_requests_total and a handler label set to prometheus:
http_requests_total{handler="prometheus"}[5m]
step=5m 表示取數據的間隔為5分鐘一次
這里的5m即為下面所說的duration format
step=<duration | float>: Query resolution step width in duration format or float number of seconds.
時間位移操作
在瞬時向量表達式或者區間向量表達式中,都是以當前時間為基準。如果我們想查詢5分鐘前的瞬時樣本數據,或昨天一天的區間內的樣本數據呢? 這個時候我們就可以使用位移操作,位移操作的關鍵字為offset。
以下表達式返回相對于當前查詢時間過去 5 分鐘的 http_requests_total 值:
http_requests_total offset 5m