View a markdown version of this page

使用 Prometheus 資料來源 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Prometheus 資料來源

重要

從 Amazon Managed Grafana 第 12 版開始,已移除 Core Prometheus 外掛程式中的 SigV4 身分驗證支援。先前使用 Core Prometheus 外掛程式的所有 Amazon Managed Service for Prometheus 資料來源都會自動遷移至 Amazon Managed Service for Prometheus 外掛程式。使用這些資料來源的任何儀表板都會自動更新,以反映此變更。請參閱 連線至 Amazon Managed Service for Prometheus 資料來源

Prometheus 設定

名稱 描述
Name 資料來源名稱。這是您在面板和查詢中查看資料來源的方式。
Default 預設資料來源表示新面板會預先選取。
Url Prometheus 伺服器的 URL;例如 https://prometheus.example.org:9090
Access 伺服器 (預設) = URL 必須可從 Grafana 後端/伺服器存取。
Basic Auth 啟用 Prometheus 資料來源的基本身分驗證。
User 基本身分驗證的使用者名稱。
Password 基本身分驗證的密碼。
Scrape interval 將此設定為 Prometheus 中設定的典型湊集和評估間隔。預設為 15 秒。
Disable metrics lookup 勾選此選項將停用查詢欄位自動完成中的指標選擇器和指標/標籤支援。如果您對更大的 Prometheus 執行個體有效能問題,這很有幫助。
Custom Query Parameters 將自訂參數新增至 Prometheus 查詢 URL。例如 timeoutdeduppartial_responsemax_source_resolution。多個參數應與 "&" 串連。

Prometheus 查詢編輯器

下列各節提供儀表板和探索中 Prometheus 查詢編輯器的資訊和選項。

儀表板中的查詢編輯器

選擇標題,然後選擇編輯 (或在面板上暫停時按 e 鍵),以編輯模式開啟圖形。

名稱 描述
Query expression 如需 Prometheus 查詢表達式的詳細資訊,請參閱 Prometheus 文件
Legend format 使用名稱或模式控制時間序列的名稱。例如, {{hostname}} 會取代為標籤 的標籤值hostname
Min step step Prometheus 範圍查詢的 參數以及 $__interval$__rate_interval變數的額外下限。限制是絕對的,不會由解析度設定修改。
Resolution 1/1 同時設定 Prometheus 範圍查詢的 $__interval變數和 參數,讓每個像素對應至一個資料點。 step為了獲得更好的效能,請使用較低的解析度。 1/2只會擷取每隔一個像素的資料點,並1/10擷取每 10 個像素一個資料點。請注意,最短時間間隔最短步驟都會限制 $__interval和 的最終值step
Metric lookup 在此輸入欄位中搜尋指標名稱。
Format as TableTime series或 之間切換HeatmapTable 僅適用於資料表面板。 Heatmap 適用於在熱度圖面板上顯示長條圖類型的指標。它會將累積長條圖轉換為一般長條圖,並依儲存貯體界限排序序列。
Instant 執行「即時」查詢,僅傳回 Prometheus 針對請求的時間序列所抓取的最新值。即時查詢傳回結果的速度比正常範圍查詢快得多。使用它們來查詢標籤集。
Min time interval 此值乘以解析設定中的分母,會將下限值設定為 Prometheus 範圍查詢的 $__interval變數和 參數。 step預設為在資料來源選項中設定的縮放間隔
注意

Amazon Managed Grafana 會修改查詢的請求日期,使其與動態計算的步驟保持一致。這可確保指標資料的一致性顯示,但它可能會在圖形的右側邊緣產生一小段資料間隙。

儀表板中的即時查詢

Prometheus 資料來源可讓您執行即時查詢,該查詢只會查詢最新的值。您可以在資料表面板中視覺化結果,以查看時間序列的所有可用標籤。

即時查詢結果每個序列僅包含一個資料點。在序列覆寫的協助下,它們可以顯示在圖形面板中。若要在圖形中將其顯示為最新的值點,請新增序列覆寫並選取 Points > true。若要在整個圖形中顯示水平線,請新增序列覆寫,然後選取 Transform > constant 如需序列覆寫的詳細資訊,請參閱系列覆寫

探索中的查詢編輯器

名稱 描述
Query expression 如需 Prometheus 查詢表達式的詳細資訊,請參閱 Prometheus 文件
Step Step Prometheus 範圍查詢的 參數。時間單位可在此處使用,例如:5s、1m、3h、1d、1y。如果未指定單位,則預設單位為 s(秒)。
Query type Range, Instant, 或 Both. 執行範圍查詢時,查詢的結果會顯示在圖形和資料表中。即時查詢只會傳回 Prometheus 針對請求的時間序列抓取的最新值,並顯示在資料表中。選取兩者時,會同時執行即時查詢和範圍查詢。範圍查詢的結果會顯示在圖形中,而即時查詢的結果會顯示在表格中。

指標瀏覽器

指標瀏覽器可讓您快速尋找指標,並選取相關標籤來建置基本查詢。當您開啟瀏覽器時,您會看到所有可用的指標和標籤。如果您的 Prometheus 執行個體支援,每個指標都會將其 HELP 和 TYPE 顯示為工具提示。

當您選取指標時,瀏覽器會縮小可用標籤的範圍,只顯示適用於指標的標籤。然後,您可以選取一或多個標籤,可用標籤值會顯示在底部區段的清單中。為每個標籤選取一或多個值,以縮小查詢範圍。

注意

如果您不記得開頭的指標名稱,您也可以先選取幾個標籤,縮小清單範圍,然後尋找相關的標籤值。

指標瀏覽器中的所有清單上方都有搜尋欄位,可快速篩選符合特定字串的指標或標籤。值區段只有一個搜尋欄位。其篩選會套用到所有標籤,以協助您在選取標籤之後跨標籤尋找值,例如,在您的標籤應用程式、任務中,只有 job_name 可能具有您要尋找的值。

一旦您對查詢感到滿意,請按一下「使用查詢」來執行查詢。使用做為速率查詢按鈕會在查詢周圍新增 rate(...)【$__interval】,以協助寫入計數器指標的查詢。「驗證選取器」按鈕會向 Prometheus 檢查該選取器有多少時間序列可用。

限制

指標瀏覽器的硬性限制為 10,000 個標籤 (索引鍵) 和 50,000 個標籤值 (包括指標名稱)。如果您的 Prometheus 執行個體傳回更多結果,瀏覽器會繼續運作。不過,結果集會中斷超過這些上限。

範本化

您可以在指標查詢中使用變數,而不是硬式編碼,例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

如需範本和範本變數的詳細資訊,請參閱 範本和變數

查詢變數

查詢類型的變數可讓您查詢 Prometheus 以取得指標、標籤或標籤值的清單。Prometheus 資料來源外掛程式提供下列函數,您可以在查詢輸入欄位中使用。

名稱 描述
label_names() 傳回標籤名稱的清單。
label_values(label) 傳回每個指標label中 的標籤值清單。
label_values(metric, label) 傳回指定指標label中 的標籤值清單。
metrics(metric) 傳回符合指定 regex metric 的指標清單。
query_result(query) 傳回 的 Prometheus 查詢結果清單query

如需有關什麼是指標名稱標籤名稱標籤值的資訊,請參閱 Prometheus 文件

使用間隔和範圍變數

注意

$__range$__range_s和 的支援$__range_ms僅適用於 Grafana v5.3。

您可以在查詢變數中使用一些全域變數:$__interval$__interval_ms$__range_s$__range$__range_ms。如需詳細資訊,請參閱全域變數。當您因為query_result函數不支援查詢而必須篩選變數查詢時,這些可以方便地與label_values函數搭配使用。

若要在變更儀表板上的時間範圍時取得正確的執行個體,請務必將變數的refresh觸發設定為 On Time Range Change

下列程式碼範例示範如何根據儀表板中顯示的時間範圍內的平均 QPS,以最忙碌的五個請求執行個體填入變數。

Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance))) Regex: /"([^"]+)"/

下列程式碼範例示範如何使用 ,在儀表板中顯示的時間範圍內將具有特定狀態的執行個體填入變數$__range_s

Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>) Regex:

使用 $__rate_interval 變數

$__rate_interval 變數旨在用於 速率函數。其定義為 max( $__interval + Scrape 間隔,4 * Scrape 間隔)。縮放間隔是最小步驟設定 (AKA query_interval,每個 PromQL 查詢的設定),如果有設定,否則是 Prometheus 資料來源中設定的縮放間隔 (但忽略面板中的任何最小間隔設定,因為解析度設定會修改後者)。

在查詢中使用變數

有兩種語法:

  • $<varname> 範例: rate(http_requests_total{job=~"$job"}【5m】)

  • [[varname]] 範例: rate(http_requests_total{job=~"【【job】】"}【5m】)

為什麼有兩種方式? 第一個語法更容易讀取和寫入,但不允許您在單字中間使用變數。啟用多值包含所有值選項時,Grafana 會將標籤從純文字轉換為 regex 相容字串。這表示您必須使用 =~而非 =

註釋

您可以使用註釋在圖形上方覆蓋豐富的事件資訊。您可以使用儀表板功能表或註釋檢視來新增註釋查詢。如需詳細資訊,請參閱註釋

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

步驟選項有助於限制從查詢傳回的事件數量。