你可以使用變數來代替寫死的細節,如 server、app 和 pod_name 在 metric 查詢中。Grafana 在儀表盤頂部的下拉選擇框中列出這些變數,幫助你改變儀表盤中顯示的資料。Grafana 將這類變數稱為模板變數。
使用 Query 型別的變數來查詢 Prometheus 的指標 (metrics)、標籤 (labels) 或標籤值 (label values) 的列表。
選擇一個 Prometheus 資料來源查詢型別並輸入所需的輸入:
Prometheus 資料來源支援在 Query 欄位中使用兩種變數語法:
$<varname>
, 如:rate(http_requests_total{job=~"$job"}[$_rate_interval])
, 它更容易讀和寫,但不允許你在詞的中間使用變數。一般使用這種變數就夠用了。[[varname]]
, 如:rate(http_requests_total{job=~"[[job]]"}[$_rate_interval])
如果你啟用了 Multi-value 或 Include all 選項,Grafana 會將標籤從純文字轉換為與 regex 相容的字串,這需要你使用=~
而不是=
。所以推薦在 Grafana 中使用 PromQL 組合 Grafana 變數時,首選 =~
.
註釋 (Annotations) 在圖表上面疊加豐富的事件資訊。你可以在 Dashboard 選單的 Annotations 檢視中新增註釋查詢。
Prometheus 支援兩種方式來查詢註釋。
ALERTS{alertname="<alert name>", alertstate="<pending or firing>", <additional alert labels>}
Step 選項對於限制從你的查詢中返回的事件數量很有用。
Prometheus 支援特殊的 ad hoc filters 變數型別,你可以用它來臨時指定任何數量的 標籤/值 過濾器。這些過濾器會自動應用於你所有的 Prometheus 查詢。
我們直接從 Grafana Dashboards 中選擇一個 Dashboard - JVM(Micrometer) (ID: 4701) 來進行說明演示。