

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

# 連接至 Graphite 資料來源
<a name="using-graphite-in-AMG"></a>

 Grafana 具有進階的 Graphite 查詢編輯器，可讓您快速導覽指標空間、新增函數、變更函數參數等等。編輯器可以處理所有類型的石圖查詢。它甚至可以透過使用查詢參考來處理複雜的巢狀查詢。

## 石墨設定
<a name="graphite-settings"></a>

 若要存取 Graphite 設定，請在**組態** （齒輪） 圖示上暫停，然後選擇**資料來源**，然後選擇 Graphite 資料來源。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取。 | 
|  URL  |  您的 graphite-web 或 graphite-api 安裝的 HTTP 通訊協定、IP 和連接埠。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Auth  |  | 
|  Basic Auth  |  啟用資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 
|  Custom HTTP Headers  |  選擇新增標頭以新增自訂 HTTP 標頭。 | 
|  Header  |  輸入自訂標頭名稱。 | 
|  Value  |  輸入自訂標頭值。 | 
|  Graphite details  |  | 
|  Version  |  選取您的 Graphite 版本。 | 
|  Type  |  選取您的 Graphite 類型。 | 

 存取模式控制將如何處理對資料來源的請求。如果未說明其他項目，伺服器應該是偏好的方式。

### 伺服器存取模式 （預設）
<a name="graphite-server-access-mode-default"></a>

 所有請求都是從瀏覽器向 Amazon Managed Grafana 提出，其會將請求轉送至資料來源，以規避可能的跨來源資源共享 (CORS) 要求。如果您選擇此存取模式，則必須從 Amazon Managed Grafana 存取 URL。

### 瀏覽器存取模式
<a name="graphite-browser-access-mode"></a>

 Amazon Managed Grafana 不支援 Graphite 資料來源的瀏覽器直接存取。

## 石磚查詢編輯器
<a name="graphite-query-editor"></a>

 Grafana 包含 Graphite 特定的查詢編輯器，可協助您建置查詢。

 若要查看傳送至 Graphite 的查詢原始文字，請選擇**切換文字編輯模式 **（鉛筆） 圖示。

### 選擇要查詢的指標
<a name="graphite-choose-metrics-to-query"></a>

 選擇**選取指標**以導覽指標空間。開始之後，您可以繼續使用指標或鍵盤方向鍵。您可以選取萬用字元並繼續。

### 函數
<a name="graphite-functions"></a>

 若要新增函數，請選擇**函數**旁的加號圖示。您可以搜尋函數，或從選單中選取它。選取函數之後，將會新增該函數，而您的焦點將位於第一個參數的文字方塊中。若要編輯或變更參數，請選擇它，它會變成文字方塊。- 若要刪除函數，請選擇函數名稱，後面接著 x 圖示。

 有些函數，例如 `aliasByNode`，支援選用的第二個引數。若要新增引數，請在第一個引數上暫停，然後選擇出現的`+`符號。若要移除第二個選用參數，請選擇它並保留空白。編輯器會將其移除。

### 排序標籤
<a name="graphite-sort-labels"></a>

 如果您想要一致排序，請使用 `sortByName`。當您在多個圖形上有相同的標籤時，這可能會令人煩惱，而且它們的排序方式和使用不同的顏色。若要修正此問題，請使用 `sortByName()`。

### 巢狀查詢
<a name="graphite-nested-queries"></a>

 您可以依查詢所在的列*字母*來參考查詢 （類似 Microsoft Excel)。如果您將第二個查詢新增至圖形，則可以在 \$1A 中輸入 來參考第一個查詢。這提供了建立複合查詢的便利方式。

### 使用萬用字元來避免許多查詢
<a name="avoiding-many-queries-by-using-wildcards"></a>

 有時，您可能會想要看到繪製在相同圖形上的多個時間序列。例如，您可能想要查看 CPU 在機器上的使用方式。最初，您可以透過為每個時間序列新增查詢來建立圖形，例如 `cpu.percent.user.g`、 `cpu.percent.system.g`等。這會導致對資料來源進行 *n* 個查詢，這是無效的。

 為了更有效率，您可以在搜尋中使用萬用字元，請在一個查詢中傳回所有時間序列。例如 `cpu.percent.*.g`。

### 修改資料表或圖表中的指標名稱
<a name="modify-the-metric-name-in-my-tables-or-charts"></a>

 使用 `alias`函數來變更 Grafana 資料表或圖形上的指標名稱；例如 `aliasByNode()`或 `aliasSub()`。

## 點合併
<a name="graphite-point-consolidation"></a>

 所有 Graphite 指標都會合併，因此 Graphite 不會傳回超過圖形中像素的資料點。根據預設，此合併會使用 `avg`函數完成。您可以新增 Graphite consolidateBy 函數來控制 Graphite 合併指標的方式。

**注意**  
 這表示圖例摘要值 （最大值、最小值、總計） 無法同時更正。它們是由 Grafana 計算的用戶端。根據您的合併函數，同時只能有一個或兩個是正確的。

## 結合時間序列
<a name="graphite-combine-time-series"></a>

 若要合併時間序列，請在**函數**清單中選擇**合併**。

## 資料探勘和標籤
<a name="data-exploration-and-tags"></a>

 在 Graphite 中，一切都是一個標籤。

 探索資料時，先前選取的標籤會用來篩選剩餘的結果集。若要選取資料，您可以使用 `seriesByTag`函數，其會採用標籤表達式 (`=`、`!=`、`=~`、`!=~`) 來篩選時間序列。

 當您選取標籤時，Grafana 查詢建置器會自動為您執行此操作。

**注意**  
 **秘訣：**規則表達式搜尋在高基數標籤上可能會很慢，因此請嘗試先使用其他標籤來縮小範圍。從特定名稱或命名空間開始，有助於減少結果。

## 範本變數
<a name="graphite-template-variables"></a>

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

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

 若要使用標籤值建立變數，請使用 Grafana 函數 `tags`和 `tag_values`。


|  Query  |  Description  | 
| --- | --- | 
|  tags()  |  傳回所有標籤。 | 
|  tags(server=\$1backend\$1\$1)  |  僅傳回在符合篩選條件表達式的序列中發生的標籤。 | 
|  tag\$1values(server)  |  傳回指定標籤的標籤值。 | 
|  tag\$1values(server, server=\$1backend\$1\$1)  |  在符合這些表達式的序列中，傳回所指定標籤發生的篩選標籤值。 | 
|  tag\$1values(server, server=\$1backend\$1\$1, app=\$1\$1\$1apps:regex\$1)  |  多個篩選條件表達式和表達式可以包含其他變數。 | 

 如需詳細資訊，請參閱[標籤自動完成 API 上的 Graphite 文件](https://graphite.readthedocs.io/en/latest/tags.html#auto-complete-support)。

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

 您在查詢欄位中指定的查詢應該是查詢的指標尋找類型。例如， 之類的查詢`prod.servers.*`會將存在於萬用字元位置中的所有可能值填入變數。

 您也可以建立在其定義中使用其他變數的巢狀變數。例如， `apps.$app.servers.*` 會在其查詢定義`$app`中使用 變數。

#### 使用 `__searchFilter` 篩選查詢變數結果
<a name="using-__searchfilter-to-filter-query-variable-results"></a>

 `__searchFilter` 在查詢欄位中使用 會根據您在下拉式清單選取方塊中輸入的內容來篩選查詢結果。當您未輸入任何內容時，當做為規則表達式的一部分使用時， 的預設值`__searchFilter`為 `*`和 ``。

 下列範例顯示如何使用 `__searchFilter`做為查詢欄位的一部分，以在使用者在下拉式清單選取方塊中輸入文字`server`時啟用搜尋。

 Query 

```
apps.$app.servers.$__searchFilter
```

 TagValues 

```
tag_values(server, server=~${__searchFilter:regex})
```

### 變數用量
<a name="variable-usage"></a>

 您可以在指標節點路徑中使用變數，或做為函數的參數。

 有兩種語法：
+  `$<varname>` 範例：apps.frontend.\$1server.requests.count 
+  `${varname}` 範例：apps.frontend.\$1\$1server\$1.requests.count 

 為什麼使用兩種方式？ 第一個語法更容易讀取和寫入，但不允許您在單字中間使用變數。在 等表達式中使用第二個語法`my.server${serverNumber}.count`。

### 標籤查詢中的變數用量
<a name="variable-usage-in-tag-queries"></a>

 標籤查詢中的多值變數使用 Grafana 5.0 中針對變數推出的進階格式化語法：`{var:regex}`。非標籤查詢將使用多值變數的預設 glob 格式。

 下列程式碼範例顯示具有 regex 格式和使用等於 Tilde 運算子 的標籤表達式`=~`。

```
server=~${servers:regex}
```

 如需詳細資訊，請參閱[進階變數格式選項](templates-and-variables.md#advanced-variable-format-options)。

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

 註釋可讓您在圖形上方疊加豐富的事件資訊。您可以透過儀表板功能表/註釋檢視新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 Graphite 支援兩種查詢註釋的方式：
+ 一般指標查詢。為此，您可以使用 **Graphite 查詢**文字方塊。
+ Graphite 事件查詢。為此，您可以使用`Graphite event tags`文字方塊，並指定標籤或萬用字元 （保留空白也可以運作）。