

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 変換
<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 は画面に一覧される順序で変換を適用します。各変換ではパイプライン内の次の変換に渡される新しい結果セットが作成されます。

この順序により結果が大きく異なる場合があります。例えば、縮小変換を使用して 1 つの列のすべての結果を 1 つの値に集約する場合、変換はその 1 つの値にのみ適用できます。

**前提条件**

変換を適用する前に、次のすべてが実行済みである必要があります。
+ クエリを入力してデータソースからデータを返された。クエリの詳細については、「[クエリ](panel-queries.md)」を参照してください。
+ 次のいずれかの視覚化などの、クエリをサポートする視覚化を適用した。
  + 棒ゲージ
  + ゲージ
  + グラフ
  + ヒートマップ
  + ログ
  + 統計
  + [テーブル]

## 変換の適用
<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>

 結果を 1 つの値に簡略化する場合は、**[削減]** 変換を適用します。削減では基本的に時間コンポーネントを削除します。テーブルとして視覚化する場合は、列が 1 行 (値) に減少します。

 **[計算]** フィールドに、1 つ以上の計算タイプを入力します。計算選択肢のリストの表示を選択します。利用可能な計算の詳細については、「[計算リスト](list-of-calculations.md)」を参照してください。

少なくとも 1 つの計算を選択すると、Amazon Managed Grafana では選択した計算を使用して 1 つの値が表示されます。複数の計算を選択すると、複数の値が表示されます。

### Merge (マージ)
<a name="merge"></a>

 この変換を使用して、複数クエリの結果を 1 つの結果にまとめます。これはテーブルパネルの視覚化を使用する場合に役立ちます。マージできる値は同じ行に結合されます。共有フィールドに同じデータが含まれている場合は値をマージできます。

 次の例では、2 つのクエリがテーブルデータを返します。変換を適用する前、データは 2 つの個別のテーブルとして視覚化されています。

クエリ A


|  Time  |  ジョブ  |  アップタイム  | 
| --- | --- | --- | 
|  2020-07-07 11:34:20  |  ノード  |  25260122  | 
|  2020-07-07 11:24:20  |  postgre  |  123001233  | 

クエリ B


|  Time  |  ジョブ  |  エラー  | 
| --- | --- | --- | 
|  2020-07-07 11:34:20  |  ノード  |  15  | 
|  2020-07-07 11:24:20  |  postgre  |  5  | 

 **[マージ]** 変換を適用した後の結果は次のとおりです。


|  Time  |  ジョブ  |  エラー  |  アップタイム  | 
| --- | --- | --- | --- | 
|  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 には **[識別子]** フィールドが表示され、クエリが返すフィールドが続きます。

 フィルターは次の 2 つのいずれかの方法で適用できます。
+  正規表現を入力します。
+  フィールドを選択してフィールドのフィルタリングを切り替えます。フィルタリングされたフィールドにはダークグレーテキストが表示され、フィルタリングされていないフィールドには白いテキストが表示されます。

### クエリによるデータのフィルタリング
<a name="filter-data-by-query"></a>

 1 つ以上のクエリを非表示にするには、複数のクエリがあるパネルでこの変換を使用します。

 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>

 この変換を使用して、他の 2 つのフィールドから計算した新しいフィールドを追加します。各変換では 1 つの新しいフィールドを追加できます。
+  **[モード]** – 以下のモードを選択します。
  +  **[行を減らす]** – 選択したフィールドの各行に、選択済みの計算を個別に適用します。
  +  **バイナリオプション** – 選択した 2 つのフィールドから、1 つの行の値に基本的な計算演算 (`sum`、`multiply` など) を適用します。
+  **フィールド名** – 新しいフィールドの計算に使用する、フィールドの名前を選択します。
+  **計算 -** Amazon Managed Grafana により新しいフィールドが作成されるときに使用する計算を選択します。計算選択肢のリストを表示するフィールドを選択します。利用可能な計算の詳細については、「[計算リスト](list-of-calculations.md)」を参照してください。
+  **[エイリアス]** – (オプション) 新しいフィールドの名前を入力します。これを空白のままにすると、計算に一致するようにフィールドの名前が付けられます。
+  **すべてのフィールドを置き換え** – (オプション) 他のすべてのフィールドを非表示にし、計算したフィールドのみを視覚化に表示する場合は、このオプションを使用します。

### フィールドへのラベル付け
<a name="labels-to-fields"></a>

**注記**  
 この変換を適用するには、クエリがラベル付きフィールドを返す必要があります。

 この変換を選択すると、Amazon Managed Grafana により、ラベル付けされたすべてのデータがフィールドに自動的に変換されます。

 例えば、2 つの時系列のクエリ結果を考慮しましょう。

 1: labels Server=Server A, Datacenter=EU 2: labels Server=Server B, Datacenter=EU 

 この変換により次の表が表示されます。


|  Time  |  サーバー  |  データセンター  |  値  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  サーバー A  |  EU  |  1  | 
|  2020-07-07 11:34:20  |  サーバー B  |  EU  |  2  | 

 **[値フィールド名]**: `Server` を **[値フィールド名]** として選択した場合は、`Server` ラベルの値ごとに 1 つのフィールドを取得します。


|  Time  |  データセンター  |  サーバー A  |  サーバー B  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  EU  |  1  |  2  | 

### グループ化の条件
<a name="sort-by"></a>

この変換は設定されたフィールドで各フレームをソートします。`reverse` がチェックされているとき、値は逆の順序で返されます。

### グループ化の条件
<a name="group-by"></a>

 この変換では、指定されたフィールド (列) 値でデータをグループ化し、各グループの計算を処理します。使用可能な計算は削減変換の場合と同じです。

 オリジナルデータの例を次に示します。


|  Time  |  サーバー ID  |  CPU 温度  |  サーバーステータス  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  サーバー 1  |  80  |  シャットダウン  | 
|  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  |  再起動  | 
|  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  | 

 この変換では 2 つのステップを実行します。まず、データによりグループ化する 1 つ以上のフィールドを指定します。これにより、これらのフィールドの同じ値すべてが、ソートされたかのようにグループ化されます。例えば、`Server ID` フィールドに **[グループ化の条件]** を適用すると、データは次のようにグループ化されます。


|  Time  |  サーバー ID  |  CPU 温度  |  サーバーステータス  | 
| --- | --- | --- | --- | 
|  2020-07-07 11:34:20  |  サーバー 1  |  80  |  シャットダウン  | 
|  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` では、*最後*の値を計算して、サーバーごとに最新の測定温度を知ることができます。

 グループ化の条件変換では次の結果が生成されます。


|  サーバー ID  |  CPU 温度 (平均)  |  CPU 温度 (最新)  |  時間 (最後)  |  サーバーステータス (最後)  | 
| --- | --- | --- | --- | --- | 
|  サーバー 1  |  82  |  80  |  2020-07-07 11:34:20  |  シャットダウン  | 
|  サーバー 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>

この変換を使用して、複数の時系列データクエリの結果を 1 つの結果にまとめます。これはテーブルパネルの視覚化を使用する場合に役立ちます。

この変換の結果には、`Time`、`Metric`、`Value` の 3 つの列が含まれます。`Metric` 列が追加されると、メトリクスの元となったクエリを確認できます。ソースクエリで `Label` を定義して、この値をカスタマイズします。

次の例では、2 つのクエリは時系列データを返します。変換を適用する前に、2 つの個別のテーブルとして視覚化されます。

 クエリ A 


|  Time  |  温度  | 
| --- | --- | 
|  2020-07-07 11:34:20  |  25  | 
|  2020-07-07 10:31:22  |  22  | 
|  2020-07-07 09:30:05  |  19  | 

 クエリ B 


|  Time  |  湿度  | 
| --- | --- | 
|  2020-07-07 11:34:20  |  24  | 
|  2020-07-07 10:32:20  |  29  | 
|  2020-07-07 09:30:57  |  33  | 

 `Series to rows` 変換を適用すると次の結果が得られます。


|  Time  |  メトリクス  |  値  | 
| --- | --- | --- | 
|  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 ワークスペースでデータを直接フィルタリングして、クエリ結果から一部のデータポイントを削除できます。1 つ以上の定義済み条件と一致するデータを含めるか除外するかを選択できます。その条件は選択したフィールドに適用されます。

この変換はデータソースが値によりネイティブにフィルタリングしない場合に役立ちます。共有クエリを使用している場合、これを使用して値を絞り込んで表示することもできます。

 すべてのフィールドで使用できる条件は次のとおりです。
+  **[Regex]** – 正規表現を照合します。
+  **[Is Null]** – 値が null の場合に照合。
+  ** [Is Not Null]** – 値が null でない場合に照合します。
+  **Equal** – 値が指定値と等しい場合に照合します。
+  **Different** – 値が指定された値と異なる場合に照合します。

数値フィールドで使用可能な条件は以下のとおりです。
+  **Greater** – 値が指定値より大きい場合に照合します。
+  **Lower** – 値が指定値よりも小さい場合に照合します。
+  **Greater or equal** – 値が指定値以上の場合に照合します。
+  **Lower or equal** – 値が指定値以下の場合に照合します。
+  **Range** – 指定された最小値と最大値間の範囲を照合します。最小と最大は範囲に含まれます。

複数の条件をフィルターに追加できます。複数の条件がある場合、追加した条件のすべてまたはいずれかと一致する行に、含めたり除外したりするためのアクションを適用するかどうかを選択できます。

有効でない条件、または設定が不完全である条件は無視されます。

### 変換のデバッグ
<a name="debug-transformations"></a>

変換の入力および出力結果のセットを表示するには、変換行の右側にあるバグアイコンを選択します。

 Amazon Managed Grafana の変換行の下に変換デバッグビューが表示されます。