翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データを変換する
このドキュメントトピックは、Grafana バージョン 9.x をサポートする Grafana ワークスペース向けに設計されています。
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 10 での作業。
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 8 での作業。
変換は、システムが視覚化を適用する前にクエリによって返されるデータを操作する強力な方法です。変換を使用すると、次のことができます。
-
フィールドの名前を変更する
-
時系列データを結合する
-
クエリ間で数学演算を実行する
-
ある変換の出力を別の変換への入力として使用する
同じデータセットの複数のビューに依存するユーザーにとって、変換は多数のダッシュボードを作成および維持する効率的な方法を提供します。
また、ある変換の出力を別の変換への入力として使用して、パフォーマンスを向上させることもできます。
注記
変換されたデータをグラフ化できない場合があります。その場合は、視覚化の上にあるテーブルビューのトグルをクリックして、データのテーブルビューに切り替えます。これは、変換の最終結果を理解するのに役立ちます。
変換タイプ
Grafana には、データを変換するさまざまな方法があります。変換関数の完全なリストを以下に示します。
変換の順序
複数の変換がある場合、Grafana はリストされている順序で変換を適用します。各変換は結果セットを作成し、処理パイプラインの次の変換に渡します。
Grafana が変換を適用する順序は、結果に直接影響します。例えば、Reduce 変換を使用して 1 つの列のすべての結果を 1 つの値に要約する場合、変換はその 1 つの値にのみ適用できます。
変換関数をデータに追加する
次の手順は、データに変換を追加する手順を示しています。
変換をパネルに追加するには
-
1 つ以上の変換を追加するパネルに移動します。
-
パネルタイトルを選択し、編集 をクリックします。
-
[Transform] (変換) タブを選択します。
-
変換を選択します。変換オプションを設定する変換行が表示されます。
-
別の変換を適用するには、「変換を追加」を選択します。この変換は、前の変換によって返された結果セットに作用します。
変換をデバッグする
変換の入力セットと出力結果セットを表示するには、変換行の右側にあるバグアイコンを選択します。
入力結果セットと出力結果セットは、変換のデバッグに役立ちます。
変換を削除する
不要な変換を削除することをお勧めします。変換を削除すると、視覚化からデータが削除されます。
前提条件:
変換に依存するすべてのダッシュボードを特定し、影響を受けるダッシュボードユーザーに通知します。
変換を削除するには
-
編集するパネルを開きます。
-
[Transform] (変換) タブを選択します。
-
削除する変換の横にあるごみ箱アイコンを選択します。
変換関数
データに対して次の変換を実行できます。
計算からフィールドを追加する
この変換を使用して、他の 2 つのフィールドから計算された新しいフィールドを追加します。各変換では、1 つの新しいフィールドを追加できます。
-
モード - モードを選択します。
-
行を減らす — 選択したフィールドの各行に、選択した計算を個別に適用します。
-
バイナリオプション – 選択した 2 つのフィールドから 1 行の値に基本的な数学演算 (合計、乗算など) を適用します。
-
-
フィールド名 – 新しいフィールドの計算に使用するフィールドの名前を選択します。
-
計算 – 行モードを減らすを選択すると、計算フィールドが表示されます。フィールドをクリックすると、新しいフィールドの作成に使用できる計算の選択肢のリストが表示されます。使用可能な計算については、「計算タイプ」を参照してください。
-
オペレーション – バイナリオプションモードを選択すると、オペレーションフィールドが表示されます。これらのフィールドを使用すると、選択した 2 つのフィールドから 1 行の値に対して基本的な数学演算を実行できます。バイナリオペレーションに数値を使用することもできます。
-
エイリアス – (オプション) 新しいフィールドの名前を入力します。これを空白のままにすると、 フィールドには計算に一致する名前が付けられます。
-
すべてのフィールドを置き換える – (オプション) 他のすべてのフィールドを非表示にし、計算フィールドのみを視覚化に表示する場合は、このオプションを選択します。
フィールドを連結する
この変換は、すべてのフレームのすべてのフィールドを 1 つの結果に結合します。これら 2 つのクエリを検討してください。
クエリ A:
Temp | 稼働時間 |
---|---|
15.4 |
1230233 |
クエリ B:
アザフト語 | エラー |
---|---|
3.2 |
5 |
フィールドを連結すると、データフレームは次のようになります。
Temp | 稼働時間 | アザフト語 | エラー |
---|---|---|---|
15.4 |
1230233 |
3.2 |
5 |
クエリ結果からの設定
この変換により、1 つのクエリを選択し、そこから最小 、最大 、単位、しきい値などの標準オプションを抽出して、他のクエリ結果に適用できます。これにより、動的なクエリ駆動型の視覚化設定が可能になります。
設定クエリ結果の各行に対して一意の設定を抽出する場合は、行からフィールドへの変換を試してください。
オプション
-
Config クエリ – 設定として使用するデータを返すクエリを選択します。
-
適用 – 設定を適用するフィールドまたはシリーズを選択します。
-
オプションに適用する – 通常、 に適用するで選択したオプションに応じて、フィールドタイプまたはフィールド名の正規表現です。
フィールドタイプの変換
この変換により、指定されたフィールドのフィールドタイプが変更されます。
-
フィールド — 使用可能なフィールドから選択
-
as – 変換 FieldType する を選択します。
-
数値 – 値数値の作成を試みます
-
文字列 - 値文字列を作成します
-
時間 — 値を時間として解析しようとします
-
yyyy-mm-dd や DD MM YYYY hh:mm:ss などの文字列で を入力 DateFormat として指定するオプションを表示します。
-
-
ブール値 – 値はブール値になります
-
例えば、次のクエリは、時刻フィールドを時刻、日付形式を YYYY として選択することで変更できます。
時間 | マーク | 値 |
---|---|---|
7/1/2017 |
上記の |
25 |
8/2/2018 |
以下 |
22 |
9/2/2019 |
以下 |
29 |
10/4/2020 |
上記の |
22 |
結果:
時間 | マーク | 値 |
---|---|---|
1/1/2017 |
上記の |
25 |
1/1/2018 |
以下 |
22 |
1/1/2019 |
以下 |
29 |
1/1/2020 |
上記の |
22 |
名前でデータをフィルタリングする
この変換を使用して、クエリ結果の一部を削除します。
Grafana は識別子フィールドを表示し、その後にクエリによって返されるフィールドが表示されます。
フィルターは、次の 2 つの方法のいずれかで適用できます。
-
正規表現式を入力します。
-
フィールドを選択して、そのフィールドのフィルタリングを切り替えます。フィルタリングされたフィールドは濃い灰色のテキストで表示され、フィルタリングされていないフィールドには白いテキストが表示されます。
クエリによるデータのフィルタリング
1 つ以上のクエリを非表示にする場合は、複数のクエリがあるパネルでこの変換を使用します。
Grafana は、クエリ識別文字をダークグレーテキストで表示します。クエリ識別子をクリックしてフィルタリングを切り替えます。クエリ文字が白の場合、結果が表示されます。クエリ文字が暗い場合、結果は非表示になります。
注記
このデータソースは返されたデータとクエリの関連付けをサポートしていないため、Graphite ではこの変換は使用できません。
値でデータをフィルタリングする
この変換により、Grafana でデータを直接フィルタリングし、クエリ結果から一部のデータポイントを削除できます。定義した 1 つ以上の条件に一致するデータを含めるか除外するかを選択できます。条件は、選択したフィールドに適用されます。
この変換は、データソースが値でネイティブにフィルタリングしない場合に役立ちます。共有クエリを使用している場合は、これを使用して値を絞り込んで表示することもできます。
すべてのフィールドで使用できる条件は次のとおりです。
-
正規表現 - 正規表現式を一致させる
-
Is Null – 値が null の場合に一致
-
Is Not Null – 値が null でない場合に一致
-
Equal – 値が指定された値と等しい場合に一致
-
差分 – 値が指定された値と異なる場合に一致します
数値フィールドで使用可能な条件は次のとおりです。
-
Greater – 値が指定された値より大きい場合に一致します
-
下限 — 値が指定された値よりも小さい場合は一致
-
Greater or equal – 値がより大きいか等しい場合は一致
-
下限または等しい — 値が 以下である場合に一致
-
範囲 – 指定された最小値と最大値、最小値と最大値の間の範囲に一致
次のデータセットを検討してください。
時間 | 温度 | 高度 |
---|---|---|
7/7/2020 午前 11 時 34 分 23 秒 |
32 |
101 |
7/7/2020 午前 11 時 34 分 22 秒 |
28 |
125 |
7/7/2020 午前 11 時 34 分 21 秒 |
26 |
110 |
7/7/2020 午前 11 時 34 分 20 秒 |
23 |
98 |
7/7/2020 午前 10 時 32 分 24 秒 |
31 |
95 |
7/7/2020 午前 10 時 31 分 22 秒 |
20 |
85 |
7/7/2020 午前 9 時 30 分 57 秒 |
19 |
101 |
温度が 30°C 未満のデータポイントを含めると、設定は次のようになります。
-
フィルタータイプ –
Include
-
条件 — が
Temperature
一致する行Lower Than 30
また、30°C 未満の温度のみが含まれる次の結果が得られます。
時間 | 温度 | 高度 |
---|---|---|
7/7/2020 午前 11 時 34 分 22 秒 |
28 |
125 |
7/7/2020 午前 11 時 34 分 21 秒 |
26 |
110 |
7/7/2020 午前 11 時 34 分 20 秒 |
23 |
98 |
7/7/2020 午前 10 時 31 分 22 秒 |
20 |
85 |
7/7/2020 午前 9 時 30 分 57 秒 |
19 |
101 |
フィルターには複数の条件を追加できます。例えば、高度が 100 より大きい場合にのみデータを含めることができます。そのためには、次の設定にその条件を追加します。
-
フィルタータイプ –
Match All
条件が設定されたInclude
行 -
条件 1 – が
Lower
よりもTemperature
一致する行30
-
条件 2 – が
Greater
よりもAltitude
一致する行100
複数の条件がある場合は、すべての条件に一致する行にアクション (含める/除外する) を適用するか、追加した条件のいずれかに一致する行に適用するかを選択できます。
上記の例では、温度が 30 より低く、高度が 100 より大きい行を含めるため、すべて一致 を選択しました。温度が 30 より小さい行や高度が 100 より大きい行を含める場合は、任意の を一致を選択します。これには、元のデータの最初の行が含まれます。元のデータの温度は 32°C (最初の条件には一致しない) ですが、高度は 101 (2 番目の条件に一致する) であるため、含まれます。
無効または不完全な条件は無視されます。
[Group by] (グループ化の条件)
この変換は、指定されたフィールド (列) 値でデータをグループ化し、各グループの計算を処理します。クリックして、計算の選択肢のリストを表示します。
オリジナルデータの例を次に示します。
時間 | Server ID | CPU 温度 | サーバーステータス |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 1 |
80 |
シャットダウン |
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 3 |
62 |
OK |
7/7/2020 午前 10 時 32 分 20 秒 |
サーバー 2 |
90 |
オーバーロード |
7/7/2020 午前 10 時 31 分 22 秒 |
サーバー 3 |
55 |
OK |
7/7/2020 午前 9 時 30 分 57 秒 |
サーバー 3 |
62 |
再起動 |
7/7/2020 午前 9 時 30 分 5 秒 |
サーバー 2 |
88 |
OK |
7/7/2020 午前 9 時 28 分 6 秒 |
サーバー 1 |
80 |
OK |
7/7/2020 午前 9 時 25 分 5 秒 |
サーバー 2 |
88 |
OK |
7/7/2020 午前 9 時 23 分 7 秒 |
サーバー 1 |
86 |
OK |
この変換は 2 つのステップで行われます。まず、データをグループ化するフィールドを 1 つ以上指定します。これにより、ソートした場合と同じフィールドの値がすべてグループ化されます。例えば、サーバー ID フィールドでグループ化すると、データは次のようにグループ化されます。
時間 | Server ID | CPU 温度 | サーバーステータス |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 1 |
80 |
シャットダウン |
7/7/2020 午前 9 時 28 分 6 秒 |
サーバー 1 |
80 |
OK |
7/7/2020 午前 9 時 23 分 7 秒 |
サーバー 1 |
86 |
OK |
7/7/2020 午前 10 時 32 分 20 秒 |
サーバー 2 |
90 |
オーバーロード |
7/7/2020 午前 9 時 30 分 5 秒 |
サーバー 2 |
88 |
OK |
7/7/2020 午前 9 時 25 分 5 秒 |
サーバー 2 |
88 |
OK |
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 3 |
62 |
OK |
7/7/2020 午前 10 時 31 分 22 秒 |
サーバー 3 |
55 |
OK |
7/7/2020 午前 9 時 30 分 57 秒 |
サーバー 3 |
62 |
再起動 |
サーバー ID の値が同じすべての行がグループ化されます。
データをグループ化するフィールドを選択したら、他のフィールドにさまざまな計算を追加し、その計算を行の各グループに適用できます。例えば、これらの各サーバーの平均 CPU 温度を計算できます。そのため、CPU 温度フィールドに適用された平均計算を追加して、以下を取得できます。
Server ID | CPU 温度 (平均) |
---|---|
サーバー 1 |
82 |
サーバー 2 |
88.6 |
サーバー 3 |
59.6 |
また、複数の計算を追加できます。例:
-
Time フィールドでは、Last 値を計算して、サーバーごとに最後のデータポイントがいつ受信されたかを確認できます。
-
Server Status フィールドでは、Last 値を計算して、各サーバーの最終状態値を確認できます。
-
フィールド温度については、最終値を計算して、各サーバーでモニタリングされる最新の温度を確認することもできます。
その後、以下を取得します。
Server ID | CPU 温度 (平均) | CPU 温度 (最新) | 時間 (最終) | サーバーステータス (最新) |
---|---|---|---|---|
サーバー 1 |
82 |
80 |
7/7/2020 午前 11 時 34 分 20 秒 |
シャットダウン |
サーバー 2 |
88.6 |
90 |
7/7/2020 午前 10 時 32 分 20 秒 |
オーバーロード |
サーバー 3 |
59.6 |
62 |
7/7/2020 午前 11 時 34 分 20 秒 |
OK |
この変換により、時系列からキー情報を抽出し、便利な方法で表示できます。
フィールドで結合する
この変換を使用して、複数の結果を 1 つのテーブルに結合します。これは、複数の時系列の結果を共有時間フィールドを持つ単一のワイドテーブルに変換する場合に特に便利です。
内部結合
内部結合は、選択したフィールドのすべてのテーブルが同じ値を共有する複数のテーブルのデータをマージします。このタイプの結合は、すべての結果で値が一致しないデータを除外します。
この変換を使用して、複数のクエリの結果 (渡された結合フィールドまたは最初の列の組み合わせ) を 1 つの結果にまとめ、結合が成功しない行を削除します。
次の例では、2 つのクエリがテーブルデータを返します。内部結合変換を適用する前に、2 つの個別のテーブルとして視覚化されます。
クエリ A:
時間 | ジョブ | 稼働時間 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
25260122 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
123001233 |
7/7/2020 午前 11 時 14 分 20 秒 |
postgre |
345001233 |
クエリ B:
時間 | [サーバー] | エラー |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 1 |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
サーバー 2 |
5 |
7/7/2020 午前 11 時 4 分 20 秒 |
サーバー 3 |
10 |
内部結合変換を適用した後の結果は次のようになります。
時間 | ジョブ | 稼働時間 | [サーバー] | エラー |
---|---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
25260122 |
サーバー 1 |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
123001233 |
サーバー 2 |
5 |
外部結合
外部結合には、すべての入力で値が一致しない内部結合と行のすべてのデータが含まれます。内部結合は時間フィールドでクエリ A とクエリ B を結合しますが、外部結合には時間フィールドで一致しないすべての行が含まれます。
次の例では、2 つのクエリがテーブルデータを返します。外部結合変換を適用する前に、2 つのテーブルとして視覚化されます。
クエリ A:
時間 | ジョブ | 稼働時間 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
25260122 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
123001233 |
7/7/2020 午前 11 時 14 分 20 秒 |
postgre |
345001233 |
クエリ B:
時間 | [サーバー] | エラー |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー 1 |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
サーバー 2 |
5 |
7/7/2020 午前 11 時 4 分 20 秒 |
サーバー 3 |
10 |
外部結合変換を適用した後の結果は次のようになります。
時間 | ジョブ | 稼働時間 | [サーバー] | エラー |
---|---|---|---|---|
7/7/2020 午前 11 時 4 分 20 秒 |
サーバー 3 |
10 |
||
7/7/2020 午前 11 時 14 分 20 秒 |
postgre |
345001233 |
||
7/7/2020 午前 11 時 34 分 20 秒 |
node |
25260122 |
サーバー 1 |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
123001233 |
サーバー 2 |
5 |
フィールドへのラベル付け
この変換により、ラベルまたはタグを含む時系列の結果がテーブルに変更され、各ラベルキーと値がテーブルの結果に含まれます。ラベルは、列または行値として表示できます。
2 つの時系列のクエリ結果を示します。
-
シリーズ 1 – ラベル Server=Server A、Datacenter=EU
-
シリーズ 2 – ラベル Server=Server B、Datacenter=EU
列モードでは、結果は次のようになります。
時間 | [サーバー] | Datacenter | 値 |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー A |
EU |
1 |
7/7/2020 午前 11 時 34 分 20 秒 |
サーバー B |
EU |
2 |
「行」モードでは、結果にはシリーズごとにテーブルがあり、次のような各ラベル値が表示されます。
ラベル | value |
---|---|
[サーバー] |
サーバー A |
Datacenter |
EU |
ラベル | value |
---|---|
[サーバー] |
サーバー B |
Datacenter |
EU |
値フィールド名
Server を値フィールド名 として選択した場合、Server ラベルの値ごとに 1 つのフィールドを取得します。
時間 | Datacenter | サーバー A | サーバー B |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
EU |
1 |
2 |
マージ動作
フィールドトランスフォーマーへのラベルは、内部的に 2 つの別々の変換です。最初の は 1 つのシリーズで動作し、フィールドにラベルを抽出します。2 つ目は、すべての結果を 1 つのテーブルに結合するマージ変換です。マージ変換は、一致するすべてのフィールドで結合を試みます。このマージステップは必須であり、無効にすることはできません。
注記
マージ変換は単独で使用でき、以下で詳しく説明します。
これを説明するために、ラベルが重複していない時系列を返すクエリが 2 つある例を次に示します。
-
シリーズ 1 – ラベル Server=ServerA
-
シリーズ 2 – ラベル Datacenter=EU
これにより、最初に次の 2 つのテーブルが作成されます。
時間 | [サーバー] | 値 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
ServerA |
10 |
時間 | Datacenter | 値 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
EU |
20 |
マージ後:
時間 | [サーバー] | 値 | Datacenter |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
ServerA |
10 |
|
7/7/2020 午前 11 時 34 分 20 秒 |
20 |
EU |
Merge
この変換を使用して、複数のクエリの結果を 1 つの結果にまとめます。これは、テーブルパネルの視覚化を使用する場合に役立ちます。マージできる値は、同じ行に結合されます。共有フィールドに同じデータが含まれている場合、値はマージできます。
次の例では、テーブルデータを返すクエリが 2 つあります。変換を適用する前に、2 つの個別のテーブルとして視覚化されます。
クエリ A:
時間 | ジョブ | 稼働時間 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
25260122 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
123001233 |
クエリ B:
時間 | ジョブ | エラー |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
5 |
マージ変換を適用した後の結果は次のとおりです。
時間 | ジョブ | エラー | 稼働時間 |
---|---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
node |
15 |
25260122 |
7/7/2020 午前 11 時 24 分 20 秒 |
postgre |
5 |
123001233 |
フィールドを整理する
この変換を使用して、クエリによって返されるフィールドの名前を変更、並べ替え、または非表示にします。
注記
この変換は、1 つのクエリを持つパネルでのみ機能します。パネルに複数のクエリがある場合は、外部結合変換を適用するか、追加のクエリを削除する必要があります。
Grafana は、クエリによって返されたフィールドのリストを表示します。次のようにできます。
-
フィールドの上にカーソルを置くことで、フィールドの順序を変更します。カーソルが手になり、フィールドを新しい場所にドラッグできます。
-
フィールド名の横にある目のアイコンをクリックして、フィールドを非表示または表示します。
-
名前変更ボックスに新しい名前を入力して、フィールドの名前を変更します。
値によるパーティション
この変換により、複数のシリーズをグラフ化するときに、異なるWHERE
句を持つ同じデータソースへの複数のクエリが不要になります。次のデータを含むメトリクス SQL テーブルを考えてみましょう。
時間 | リージョン | 値 |
---|---|---|
10/20/2022 午後 12 時 00 分 00 秒 |
米国 |
1520 |
10/20/2022 午後 12 時 00 分 00 秒 |
EU |
2936 |
10/20/2022 午前 1 時 00 分 00 秒 |
米国 |
1327 |
10/20/2022 午前 1 時 00 分 00 秒 |
EU |
912 |
v9.3 より前のバージョンでは、同じ TimeSeries パネルで米国の赤いトレンドラインと EU の青いトレンドラインをプロットする場合は、これを 2 つのクエリに分割する必要があります。
SELECT Time, Value FROM metrics WHERE Time > '2022-10-20' AND Region='US' SELECT Time, Value FROM metrics WHERE Time > '2022-10-20' AND Region='EU'
また、メトリクステーブルに実際に存在するリージョンを事前に把握する必要があります。
Partition by values transformer を使用すると、単一のクエリを発行し、選択した 1 つ以上の列 (fields
) の一意の値で結果を分割できるようになりました。次の例では Region
を使用しています。
SELECT Time, Region, Value FROM metrics WHERE Time > '2022-10-20'
時間 | リージョン | 値 |
---|---|---|
10/20/2022 午後 12 時 00 分 00 秒 |
米国 |
1520 |
10/20/2022 午前 1 時 00 分 00 秒 |
米国 |
1327 |
時間 | リージョン | 値 |
---|---|---|
10/20/2022 午後 12 時 00 分 00 秒 |
EU |
2936 |
10/20/2022 午前 1 時 00 分 00 秒 |
EU |
912 |
削減
Reduce 変換は、フレーム内の各フィールドに計算を適用し、単一の値を返します。この変換を適用すると、時間フィールドは削除されます。
入力について考えてみましょう。
クエリ A:
時間 | Temp | 稼働時間 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
12.3 |
256122 |
7/7/2020 午前 11 時 24 分 20 秒 |
15.4 |
1230233 |
クエリ B:
時間 | アザフト語 | エラー |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
6.5 |
15 |
7/7/2020 午前 11 時 24 分 20 秒 |
3.2 |
5 |
リデューストランスフォーマーには 2 つのモードがあります。
-
シリーズから行 - 各フィールドの行と各計算の列を作成します。
-
フィールドを減らす - 既存のフレーム構造を維持しますが、各フィールドを 1 つの値にまとめます。
例えば、シリーズから行への変換で最初と最後の計算を使用した場合、結果は次のようになります。
フィールド | 最初 | 最後 |
---|---|---|
Temp |
12.3 |
15.4 |
稼働時間 |
256122 |
1230233 |
アザフト語 |
6.5 |
3.2 |
エラー |
15 |
5 |
最終計算の Reduce フィールドでは、それぞれ 1 行の 2 つのフレームが生成されます。
クエリ A:
Temp | 稼働時間 |
---|---|
15.4 |
1230233 |
クエリ B:
アザフト語 | エラー |
---|---|
3.2 |
5 |
正規表現で名前を変更する
この変換を使用して、正規表現と置換パターンを使用してクエリ結果の一部の名前を変更します。
正規表現を指定できます。正規表現は、バックリファレンスをサポートする置換パターンとともに、一致にのみ適用されます。例えば、ホストあたりの CPU 使用率を視覚化し、ドメイン名を削除するとします。正規表現を に設定([^\.]+)\..+
し、置換パターンを web-01.example.com
に設定すれば$1
、 になりますweb-01
。
行からフィールドへ
行からフィールドへの変換は、行を別々のフィールドに変換します。これは、フィールドを個別にスタイル付けして設定できるため便利です。また、動的フィールド設定のソースとして追加のフィールドを使用したり、フィールドラベルにマッピングしたりすることもできます。その後、追加のラベルを使用して、結果のフィールドにより良い表示名を定義できます。
この変換には、設定クエリによって返されるデータ内のすべてのフィールドを一覧表示するフィールドテーブルが含まれます。この表では、各設定プロパティにマッピングするフィールドを制御できます (*Use as** オプション)。返されたデータに複数の行があるかどうかを選択する値を選択することもできます。
この変換には以下が必要です。
-
フィールド名のソースとして使用する 1 つのフィールド。
デフォルトでは、変換は最初の文字列フィールドをソースとして使用します。代わりに使用するフィールドの「Use as 列」で「Field name」を選択すると、このデフォルト設定を上書きできます。
-
値のソースとして使用する 1 つのフィールド。
デフォルトでは、変換は最初の数値フィールドをソースとして使用します。ただし、代わりに使用するフィールドの「Use as 列」で「Field value」を選択して、このデフォルト設定を上書きできます。
データを視覚化する場合に便利です。
-
Gauge
-
Stat
-
円グラフ
追加フィールドをラベルにマッピングする
フィールドが設定プロパティにマッピングされない場合、Grafana は出力フィールドのラベルのソースとして自動的に使用します。
例:
名前 | DataCenter | 値 |
---|---|---|
ServerA |
米国 |
100 |
ServerB |
EU |
200 |
出力:
ServerA (ラベル: DataCenter: 米国) | ServerB (ラベル: DataCenter: EU) |
---|---|
10 |
20 |
追加のラベルをフィールド表示名で使用できるようになり、より完全なフィールド名が提供されます。
あるクエリから設定を抽出して別のクエリに適用する場合は、クエリ結果変換から設定を使用する必要があります。
例
Input:
名前 | 値 | 最大 |
---|---|---|
ServerA |
10 |
100 |
ServerB |
20 |
200 |
ServerC |
30 |
300 |
出力:
ServerA (設定: max=100) | ServerB (設定: 最大 = 200) | ServerC (設定: 最大 = 300) |
---|---|---|
10 |
20 |
30 |
ソースデータ内の各行が個別のフィールドになるのがわかります。各フィールドには、最大設定オプションも設定されるようになりました。Min、Max、Unit、Thresholds などのオプションはすべてフィールド設定の一部であり、このような設定を行うと、パネルエディタのオプションペインで手動で設定されたオプションではなく、視覚化によって使用されます。
時系列を準備する
時系列変換の準備は、使用するパネルでサポートされていない形式でデータソースが時系列データを返す場合に便利です。
この変換は、時系列データをワイド形式からロング形式、またはその逆に変換することで、この問題を解決するのに役立ちます。
マルチフレーム時系列オプションを選択して、時系列データフレームをワイド形式からロング形式に変換します。
Wide time series オプションを選択して、時系列データフレームを long 形式から wide 形式に変換します。
シリーズから行へ
この変換を使用して、複数の時系列データクエリの結果を 1 つの結果にまとめます。これは、テーブルパネルの視覚化を使用する場合に役立ちます。
この変換の結果には、時間、メトリクス、値の 3 つの列が含まれます。メトリクス列が追加され、メトリクスのソースとなるクエリを簡単に確認できます。ソースクエリでラベルを定義して、この値をカスタマイズします。
以下の例では、時系列データを返すクエリが 2 つあります。変換を適用する前に、2 つの個別のテーブルとして視覚化されます。
クエリ A:
時間 | 温度 |
---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
25 |
7/7/2020 午前 10 時 31 分 22 秒 |
22 |
7/7/2020 午前 9 時 30 分 5 秒 |
19 |
クエリ B:
時間 | 湿度 |
---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
24 |
7/7/2020 午前 10 時 32 分 20 秒 |
29 |
7/7/2020 午前 9 時 30 分 57 秒 |
33 |
シリーズを行変換に適用した後の結果を次に示します。
時間 | メトリクス | 値 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
温度 |
25 |
7/7/2020 午前 11 時 34 分 20 秒 |
湿度 |
22 |
7/7/2020 午前 10 時 32 分 20 秒 |
湿度 |
29 |
7/7/2020 午前 10 時 31 分 22 秒 |
温度 |
22 |
7/7/2020 午前 9 時 30 分 57 秒 |
湿度 |
33 |
7/7/2020 午前 9 時 30 分 5 秒 |
温度 |
19 |
でソート
この変換では、設定されたフィールドで各フレームがソートされます。 reverse
をチェックすると、値は逆の順序で返されます。
制限
この変換を使用して、表示される行数を制限します。
以下の例では、データソースから次のレスポンスがあります。
時間 | メトリクス | 値 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
温度 |
25 |
7/7/2020 午前 11 時 34 分 20 秒 |
湿度 |
22 |
7/7/2020 午前 10 時 32 分 20 秒 |
湿度 |
29 |
7/7/2020 午前 10 時 31 分 22 秒 |
温度 |
22 |
7/7/2020 午前 9 時 30 分 57 秒 |
湿度 |
33 |
7/7/2020 午前 9 時 30 分 5 秒 |
温度 |
19 |
値が「3」の制限変換を追加した後の結果は次のとおりです。
時間 | メトリクス | 値 |
---|---|---|
7/7/2020 午前 11 時 34 分 20 秒 |
温度 |
25 |
7/7/2020 午前 11 時 34 分 20 秒 |
湿度 |
22 |
7/7/2020 午前 10 時 32 分 20 秒 |
湿度 |
29 |