

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

# 使用 Prometheus 資料來源
<a name="amazon-using-prometheus-datasource"></a>

## Prometheus 設定
<a name="amazon-prometheus-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取。 | 
|  Url  |  Amazon Managed Service for Prometheus 工作區的 URL；例如 https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-example1234/。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Scrape interval  |  將此設定為 Prometheus 中設定的典型湊集和評估間隔。預設為 15 秒。 | 
|  Disable metrics lookup  |  勾選此選項會在查詢欄位的自動完成中停用指標選擇器和指標/標籤支援。如果您對更大的 Prometheus 執行個體有效能問題，這很有幫助。 | 
|  Custom Query Parameters  |  將自訂參數新增至 Prometheus 查詢 URL。例如 timeout、dedup、 partial\$1response或 max\$1source\$1resolution。多個參數應與 "&" 串連。 | 

## Prometheus 查詢編輯器
<a name="amazon-prometheus-query-editor"></a>

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

### 儀表板中的查詢編輯器
<a name="amazon-query-editor-in-dashboards"></a>

 選擇標題，然後選擇**編輯** （或在面板上暫停時按 **e** 鍵），以編輯模式開啟圖形。


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

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

#### 儀表板中的即時查詢
<a name="amazon-prometheus-instant-queries-in-dashboards"></a>

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

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

### 探索中的查詢編輯器
<a name="amazon-p-query-editor-in-explore"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Query expression  |  如需 Prometheus 查詢表達式的詳細資訊，請參閱 [Prometheus 文件](https://prometheus.io/docs/querying/basics/)。 | 
|  Step  |  [`Step` Prometheus 範圍查詢的 參數](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)。您可以在這裡使用時間單位，例如：5s、1m、3h、1d、1y。如果未指定單位，則預設單位為 s（秒）。 | 
|  Query type  |  Range, Instant, 或 Both. 執行範圍查詢時，查詢的結果會顯示在圖形和資料表中。即時查詢只會傳回 Prometheus 針對請求的時間序列所抓取的最新值，並顯示在資料表中。選取兩者時，會同時執行即時查詢和範圍查詢。範圍查詢的結果會顯示在圖形中，而即時查詢的結果會顯示在表格中。 | 

## 指標瀏覽器
<a name="amazon-prometheus-metrics-browser"></a>

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

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

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

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

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

### 限制
<a name="amazon-metrics-browser-limitations"></a>

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

## 範本化
<a name="amazon-p-templating"></a>

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

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

### 查詢變數
<a name="amazon-p-query-variable"></a>

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


|  名稱  |  描述  | 
| --- | --- | 
|  label\$1names()  |  傳回標籤名稱的清單。 | 
|  label\$1values(label)  |  傳回每個指標label中 的標籤值清單。 | 
|  label\$1values(metric, label)  |  傳回指定指標label中 的標籤值清單。 | 
|  metrics(metric)  |  傳回符合指定 regex metric 的指標清單。 | 
|  query\$1result(query)  |  傳回 的 Prometheus 查詢結果清單query。 | 

 如需有關什麼是*指標名稱*、*標籤名稱*和*標籤值*的資訊，請參閱 [Prometheus 文件](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)。

#### 使用間隔和範圍變數
<a name="amazon-p-using-interval-and-range-variables"></a>

**注意**  
 對 `$__range`、 `$__range_s`和 的支援`$__range_ms`僅適用於 Grafana 5.3 版。

 您可以在查詢變數中使用一些全域變數：`$__interval`、`$__interval_ms`、`$__range_s`、 `$__range`和 `$__range_ms`。如需詳細資訊，請參閱[全域變數](variables-types.md#global-variables)。當您因為`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` 變數
<a name="amazon-p-using-__rate_interval-variable"></a>

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

### 在查詢中使用變數
<a name="amazon-p-using-variables-in-queries"></a>

 有兩種語法：
+  `$<varname>` 範例： rate(http\$1requests\$1total\$1job=\$1"\$1job"\$1【5m】) 
+  `[[varname]]` 範例： rate(http\$1requests\$1total\$1job=\$1"【job】】"\$1【5m】) 

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

## 註釋
<a name="amazon-p-annotations"></a>

 您可以使用註釋在圖形上方覆蓋豐富的事件資訊。您可以使用儀表板功能表或註釋檢視來新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 Prometheus 支援兩種查詢註釋的方式。
+  一般指標查詢 
+  待定和觸發提醒的 Prometheus 查詢。如需詳細資訊，請參閱[在執行時間檢查提醒](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#inspecting-alerts-during-runtime))。

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