

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

# 轉換
<a name="panel-transformations"></a>

****  
本文件主題專為支援 Grafana **8.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 12.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 12 版](using-grafana-v12.md)。  
如需支援 Grafana 10.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 10 版](using-grafana-v10.md)。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。

轉換會先處理結果集，再傳遞至視覺化效果。您可以在 Amazon Managed Grafana 面板編輯器的轉換索引標籤中存取**轉換**。

您可以使用轉換重新命名欄位、將個別的時間序列聯結在一起、跨查詢執行數學等。如果您有大型儀表板或繁重的查詢，能夠將查詢結果從一個面板重複使用到另一個面板，可提供巨大的效能提升。

**注意**  
轉換有時會產生無法繪製圖形的資料。發生這種情況時，Amazon Managed Grafana 會在視覺化上顯示建議。選擇建議以切換到資料表視覺化。這通常有助於您更加了解轉換對資料的作用。

Amazon Managed Grafana 會依畫面上列出的順序套用轉換。每次轉換都會建立新的結果集，傳遞給管道中的下一個轉換。

順序可以大幅改變結果的外觀。例如，如果您使用減少轉換將一欄的所有結果精簡為單一值，您只能將轉換套用至該單一值。

**先決條件**

套用轉換之前，下列所有項目都必須為 true：
+ 您已輸入查詢並從資料來源傳回資料。如需查詢的詳細資訊，請參閱[查詢](panel-queries.md)。
+ 您已套用支援查詢的視覺效果，例如下列其中一個視覺效果：
  + 長條規
  + 量測計
  + 圖表
  + 熱度圖
  + 日誌
  + Stat
  + 資料表

## 套用轉換
<a name="apply-a-transformation"></a>

 轉換可從面板編輯器底部窗格中的**轉換**索引標籤，**查詢**索引標籤旁取得。

**套用轉換**

1.  在您要新增轉換的面板上，選擇面板標題，然後選擇**編輯**。

1.  選擇**轉換**索引標籤。

1.  選取轉換。

    在出現的轉換列中，您可以設定轉換選項。

1.  若要套用另一個轉換，請選擇**新增轉換**。請記住，下一個轉換會對先前轉換傳回的結果集採取行動。

 如果您遇到問題，請選擇錯誤圖示來[偵錯轉換](#debug-transformations)。

 若要移除轉換，請選擇垃圾桶圖示。

## 轉換類型和選項
<a name="transformation-types-and-options"></a>

 Grafana 工作區包含下列轉換。

**Topics**
+ [減少](#reduce)
+ [Merge](#merge)
+ [按名稱篩選](#filter-by-name)
+ [依查詢篩選資料](#filter-data-by-query)
+ [組織欄位](#organize-fields)
+ [依欄位聯結 （外部聯結）](#join-by-field-outer-join)
+ [從計算新增欄位](#add-field-from-calculation)
+ [欄位的標籤](#labels-to-fields)
+ [分組依據](#sort-by)
+ [分組依據](#group-by)
+ [序列到資料列](#series-to-rows)
+ [依值篩選資料](#filter-data-by-value)
+ [偵錯轉換](#debug-transformations)

### 減少
<a name="reduce"></a>

 當您想要將結果簡化為一個值時，套用**減少**轉換。減少基本上會移除時間元件。如果視覺化為資料表，則會將資料欄縮小到一列 （值）。

 在**計算**欄位中，輸入一或多個計算類型。選擇 以查看計算選項的清單。如需可用計算的資訊，請參閱 [計算清單](list-of-calculations.md)。

在您選取至少一個計算之後，Amazon Managed Grafana 會使用您選取的計算顯示一個值。如果您選擇多個計算，則會顯示多個值。

### Merge
<a name="merge"></a>

 使用此轉換將多個查詢的結果合併為單一結果。這在使用資料表面板視覺化時很有用。可合併的值會合併為相同的資料列。如果共用欄位包含相同的資料，則可以合併值。

 在下列範例中，兩個查詢會傳回資料表資料。套用轉換之前，資料會視覺化為兩個不同的資料表。

查詢 A


|  時間  |  任務  |  執行時間  | 
| --- | --- | --- | 
|  2020-07-07 11：34：20  |  節點  |  25260122  | 
|  2020-07-07 11：24：20  |  postgre  |  123001233  | 

查詢 B


|  時間  |  任務  |  錯誤  | 
| --- | --- | --- | 
|  2020-07-07 11：34：20  |  節點  |  15  | 
|  2020-07-07 11：24：20  |  postgre  |  5  | 

 以下是套用**合併**轉換後的結果。


|  時間  |  任務  |  錯誤  |  執行時間  | 
| --- | --- | --- | --- | 
|  2020-07-07 11：34：20  |  節點  |  15  |  25260122  | 
|  2020-07-07 11：24：20  |  postgre  |  5  |  123001233  | 

### 按名稱篩選
<a name="filter-by-name"></a>

 使用此轉換移除部分查詢結果。

 Amazon Managed Grafana 會顯示**識別符**欄位，後面接著查詢傳回的欄位。

 您可以透過下列兩種方式之一套用篩選條件：
+  輸入 regex 表達式。
+  選擇欄位以切換該欄位的篩選。篩選的欄位會以深灰色文字顯示，未篩選的欄位則以白色文字顯示。

### 依查詢篩選資料
<a name="filter-data-by-query"></a>

 如果您想要隱藏一或多個查詢，請在具有多個查詢的面板中使用此轉換。

 Amazon Managed Grafana 會以深灰色文字顯示查詢識別字母。若要切換篩選，請選擇查詢識別符。如果查詢字母為白色，則會顯示結果。如果查詢字母為深色，則會隱藏結果。

### 組織欄位
<a name="organize-fields"></a>

 使用此轉換來重新命名、重新排序或隱藏查詢傳回的欄位。

**注意**  
 此轉換僅適用於具有單一查詢的面板。如果您的面板有多個查詢，您必須套用**依欄位加入 （外部聯結）** 轉換或移除額外的查詢。

 Amazon Managed Grafana 會顯示查詢傳回的欄位清單。您可以進行下列任何變更：
+  將滑鼠停在欄位上來變更欄位順序。游標會變成手，然後您可以將欄位拖曳到新的位置。
+  透過選擇欄位名稱旁的眼睛圖示來隱藏或顯示欄位。
+  在重新命名方塊中輸入新名稱來**重新命名**欄位。

### 依欄位聯結 （外部聯結）
<a name="join-by-field-outer-join"></a>

 使用此轉換可從依欄位設定的結果聯結多個時間序列。

 如果您想要結合查詢，以便計算欄位的結果，此轉換會很有用。

### 從計算新增欄位
<a name="add-field-from-calculation"></a>

 使用此轉換來新增從其他兩個欄位計算的新欄位。每次轉換都可讓您新增一個新欄位。
+  **模式** – 選取模式：
  +  **減少資料列 – **個別將選取的計算套用至所選欄位的每一列。
  +  **二進位選項** – `sum`將基本數學操作 (`multiply`、 等） 套用至來自兩個所選欄位的單一資料列中的值。
+  **欄位名稱** – 選取您要在新欄位的計算中使用的欄位名稱。
+  **計算 -** 選取要在 Amazon Managed Grafana 建立新欄位時使用的計算。選擇 欄位以查看計算選項的清單。如需可用計算的資訊，請參閱 [計算清單](list-of-calculations.md)。
+  **別名** – （選用） 輸入新欄位的名稱。如果您將此保留空白， 欄位將命名為符合計算。
+  **取代所有欄位** – （選用） 如果您想要隱藏所有其他欄位，並僅在視覺化中顯示計算欄位，請使用此選項。

### 欄位的標籤
<a name="labels-to-fields"></a>

**注意**  
 若要套用此轉換，您的查詢需要傳回標記的欄位。

 當您選取此轉換時，Amazon Managed Grafana 會自動將所有標記的資料轉換為欄位。

 例如，請考慮兩個時間序列的查詢結果。

 1：標籤 Server=Server A， Datacenter=EU 2：標籤 Server=Server B， Datacenter=EU 

 此轉換將導致下表。


|  時間  |  Server  |  Datacenter  |  Value  | 
| --- | --- | --- | --- | 
|  2020-07-07 11：34：20  |  伺服器 A  |  歐盟  |  1  | 
|  2020-07-07 11：34：20  |  伺服器 B  |  歐盟  |  2  | 

 **值欄位名稱**；如果您選取 `Server`作為**值欄位名稱**，則`Server`標籤的每個值都會有一個欄位。


|  時間  |  Datacenter  |  伺服器 A  |  伺服器 B  | 
| --- | --- | --- | --- | 
|  2020-07-07 11：34：20  |  歐盟  |  1  |  2  | 

### 分組依據
<a name="sort-by"></a>

此轉換會依設定的欄位排序每個影格。核取`reverse`時，會以相反的順序傳回值。

### 分組依據
<a name="group-by"></a>

 此轉換會依指定的欄位 （資料欄） 值將資料分組，並處理每個群組的計算。可用的計算與減少轉換相同。

 以下是原始資料的範例。


|  時間  |  伺服器 ID  |  CPU 溫度  |  伺服器狀態  | 
| --- | --- | --- | --- | 
|  2020-07-07 11：34：20  |  伺服器 1  |  80  |  Shutdown  | 
|  2020-07-07 11：34：20  |  伺服器 3  |  62  |  OK  | 
|  2020-07-07 10：32：20  |  伺服器 2  |  90  |  過載  | 
|  2020-07-07 10：31：22  |  伺服器 3  |  55  |  OK  | 
|  2020-07-07 09：30：57  |  伺服器 3  |  62  |  Rebooting (重新開機中)  | 
|  2020-07-07 09：30：05  |  伺服器 2  |  88  |  OK  | 
|  2020-07-07 09：28：06  |  伺服器 1  |  80  |  OK  | 
|  2020-07-07 09：25：05  |  伺服器 2  |  88  |  OK  | 
|  2020-07-07 09：23：07  |  伺服器 1  |  86  |  OK  | 

 此轉換需要兩個步驟。首先，您可以指定一或多個欄位來分組資料。這會將這些欄位的所有相同值分組在一起，就像您排序它們一樣。例如，如果您**依 欄位分組**，則會以下列方式將資料分組： `Server ID`


|  時間  |  伺服器 ID  |  CPU 溫度  |  伺服器狀態  | 
| --- | --- | --- | --- | 
|  2020-07-07 11：34：20  |  伺服器 1  |  80  |  Shutdown  | 
|  2020-07-07 09：28：06  |  伺服器 1  |  80  |  OK  | 
|  2020-07-07 09：23：07  |  伺服器 1  |  86  |  OK  | 

```
2020-07-07 10:32:20 | server 2 | 90 | Overload
2020-07-07 09:30:05 | server 2 | 88 | OK
2020-07-07 09:25:05 | server 2 | 88 | OK

2020-07-07 11:34:20 | server 3 | 62 | OK
2020-07-07 10:31:22 | server 3 | 55 | OK
2020-07-07 09:30:57 | server 3 | 62 | Rebooting
```

具有相同 值的所有資料列`Server ID`會分組在一起。

在選擇要將資料分組的欄位之後，您可以在其他欄位上新增各種計算，而計算會套用至每個資料列群組。例如，您可能想要計算每個伺服器`CPU temperature`的平均數。您可以新增套用至 `CPU Temperature` 欄位*的平均*計算，以取得下列項目。


|  伺服器 ID  |  CPU 溫度 （平均值）  | 
| --- | --- | 
|  伺服器 1  |  82  | 
|  伺服器 2  |  88.6  | 
|  伺服器 3  |  59.6  | 

您也可以新增多個計算。例如，您可以使用下列計算。
+  對於 欄位 `Time`，您可以計算*最後一個*值，以了解每個伺服器收到最後一個資料點的時間。
+  對於欄位 `Server Status`，您可以計算*最後一個*值，以了解每個伺服器的最後一個狀態值。
+  對於欄位 `Temperature`，您也可以計算*最後一個*值，以了解每個伺服器的最新監控溫度。

 Group By 轉換會產生下列結果。


|  伺服器 ID  |  CPU 溫度 （平均值）  |  CPU 溫度 （最後一個）  |  時間 （上次）  |  伺服器狀態 （最後一個）  | 
| --- | --- | --- | --- | --- | 
|  伺服器 1  |  82  |  80  |  2020-07-07 11：34：20  |  Shutdown  | 
|  伺服器 2  |  88.6  |  90  |  2020-07-07 10：32：20  |  過載  | 
|  伺服器 3  |  59.6  |  62  |  2020-07-07 11：34：20  |  OK  | 

使用此轉換，您可以從時間序列中擷取一些關鍵資訊，並以方便的方式顯示。

### 序列到資料列
<a name="series-to-rows"></a>

使用此轉換將多個時間序列資料查詢的結果合併為單一結果。這在使用資料表面板視覺化時很有用。

此轉換的結果將包含三個資料欄：`Time`、 `Metric`和 `Value`。資料`Metric`欄會新增，以便您可以查看指標源自哪個查詢。透過在來源查詢`Label`上定義 來自訂此值。

在下面的範例中，兩個查詢會傳回時間序列資料。在套用轉換之前，它會視覺化為兩個不同的資料表。

 查詢 A 


|  時間  |  溫度  | 
| --- | --- | 
|  2020-07-07 11：34：20  |  25  | 
|  2020-07-07 10：31：22  |  22  | 
|  2020-07-07 09：30：05  |  19  | 

 查詢 B 


|  時間  |  濕度  | 
| --- | --- | 
|  2020-07-07 11：34：20  |  24  | 
|  2020-07-07 10：32：20  |  29  | 
|  2020-07-07 09：30：57  |  33  | 

 套用`Series to rows`轉換會產生下列結果。


|  時間  |  指標  |  Value  | 
| --- | --- | --- | 
|  2020-07-07 11：34：20  |  溫度  |  25  | 
|  2020-07-07 11：34：20  |  濕度  |  22  | 
|  2020-07-07 10：32：20  |  濕度  |  29  | 
|  2020-07-07 10：31：22  |  溫度  |  22  | 
|  2020-07-07 09：30：57  |  濕度  |  33  | 
|  2020-07-07 09：30：05  |  溫度  |  19  | 

### 依值篩選資料
<a name="filter-data-by-value"></a>

此轉換可讓您直接在 Grafana 工作區中篩選資料，並從查詢結果中移除一些資料點。您可以選擇包含或排除符合您定義的一或多個條件的資料。這些條件會套用至選取的欄位。

如果您的資料來源不原生依值篩選，則此轉換很有用。如果您使用共用查詢，也可以使用此值來縮小顯示範圍。

 所有欄位的可用條件如下：
+  **Regex** – 符合 regex 表達式。
+  **為 Null** – 如果值為 Null，則相符。
+  **Is Not Null** – 如果值不是 Null，則相符。
+  **等於** – 如果值等於指定的值，則相符。
+  **不同** – 如果值與指定的值不同，則相符。

數字欄位的可用條件如下：
+  **較大** – 如果值大於指定的值，則相符。
+  **較低** – 如果值低於指定的值，則相符。
+  **大於或等於** – 如果值大於或等於指定的值，則相符。
+  **小於或等於** – 如果值小於或等於指定的值，則相符。
+  **範圍** – 符合指定最小值和最大值之間的範圍。範圍中包含最小值和最大值。

您可以將多個條件新增至篩選條件。當您有多個條件時，您可以選擇是否要在符合所有或任何您新增條件的資料列上套用包含或排除動作。

未有效或設定不完整的條件會被忽略。

### 偵錯轉換
<a name="debug-transformations"></a>

若要查看轉換的輸入和輸出結果集，請選擇轉換列右側的錯誤圖示。

 Amazon Managed Grafana 會在轉換列下方顯示轉換偵錯檢視。