Grafanaで変換テーブルを使ってIDをメッセージに変換する

2023.01.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。CX事業本部Delivery部のakkyです。

Grafanaでデータベースから情報を取得してきて表パネルに表示する場合、コード番号と文字列を対応させて変換したい場合があると思います。 たとえば、コード番号=1なら、同じ行に1に対応した文字列である「正常」を表示したい、ということですね。

データソースが通常のRDBであれば、単純にクエリにSQLを書き変換テーブルとJOINすれば済む話なのですが、GrafanaではSQLが使えないデータソースからもデータを取得することができます。 この場合は、Grafana自体で同様にデータを結合して表示することができます。

今回は、GrafanaでIDを文字列に変換する方法をご紹介します。

検証環境

Amazon Managed Grafana v8.4.7

データの用意

データソースには、実験用に元データと変換用テーブルの両方にTest Data DBのCSV Contentを使用します。

それぞれ、以下のようにしました。項目名で突合しますので、今回は「ID」という項目名は共通にしておきます。

元データ

発生日,ID
2023-1-2,1
2023-1-3,3
2023-1-3,2
2023-1-4,1

変換テーブル

ID,エラーメッセージ
1,正常
2,エラーA
3,エラーB
4,エラーC

データの結合方法

Transformタブへ移動し、MergeFilter data by valuesを選択します。

Filter data by valuesでは、Filter typeをInclude、ConditionsをMatch all、Fieldで元データの項目名を一つ(今回の例では発生日)、MatchをIs not nullとすれば完成です。

以下のように、2つの表を結合して表示することができました!

なお、Filter data by valuesが必要な理由は、Mergeでは元データと変換テーブルが外部結合されるため、これを付けないと元データに含まれないIDが表示されてしまうためです。