Grafana 系列-統一展示-3-Prometheus 儀表板

2023-05-08 12:00:33

系列文章

知識儲備

Prometheus Template Variables

你可以使用變數來代替寫死的細節,如 server、app 和 pod_name 在 metric 查詢中。Grafana 在儀表盤頂部的下拉選擇框中列出這些變數,幫助你改變儀表盤中顯示的資料。Grafana 將這類變數稱為模板變數。

Query Variables

使用 Query 型別的變數來查詢 Prometheus 的指標 (metrics)、標籤 (labels) 或標籤值 (label values) 的列表。

選擇一個 Prometheus 資料來源查詢型別並輸入所需的輸入:

Variable Syntax

Prometheus 資料來源支援在 Query 欄位中使用兩種變數語法:

  • $<varname>, 如:rate(http_requests_total{job=~"$job"}[$_rate_interval]), 它更容易讀和寫,但不允許你在詞的中間使用變數。一般使用這種變數就夠用了。
  • [[varname]], 如:rate(http_requests_total{job=~"[[job]]"}[$_rate_interval])

如果你啟用了 Multi-valueInclude all 選項,Grafana 會將標籤從純文字轉換為與 regex 相容的字串,這需要你使用=~而不是=。所以推薦在 Grafana 中使用 PromQL 組合 Grafana 變數時,首選 =~.

Annotations

註釋 (Annotations) 在圖表上面疊加豐富的事件資訊。你可以在 Dashboard 選單的 Annotations 檢視中新增註釋查詢。

Prometheus 支援兩種方式來查詢註釋。

  • 一個常規的 metric 查詢
  • 一個 Prometheus 的 pending 和 firing 的告警(詳見 在執行期間檢查警報), 範例為:ALERTS{alertname="<alert name>", alertstate="<pending or firing>", <additional alert labels>}

Step 選項對於限制從你的查詢中返回的事件數量很有用。

Ad Hoc Filters Variable

Prometheus 支援特殊的 ad hoc filters 變數型別,你可以用它來臨時指定任何數量的 標籤/值 過濾器。這些過濾器會自動應用於你所有的 Prometheus 查詢。

實戰

我們直接從 Grafana Dashboards 中選擇一個 Dashboard - JVM(Micrometer) (ID: 4701) 來進行說明演示。