プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2020/02/07

Grafana で凡例をフィールド名にする

update2020/02/12 event_note2020/02/07 0:00

InfluxDB のデータに対して Grafana でパネルを作成したとき、グラフの凡例は メジャーメント名.集約関数 となりますが、これをフィールド名にする方法です。

問題点

通常は以下のように凡例が メジャーメント名.集約関数 で表示されます。

一応 alias で任意の名前をつけることができるので、そこにフィールド名を入力すれば表示を変えることはできますが、それでもメジャーメント名は必ず先頭についてしまいます。

これを、先頭にメジャーメント名がつかないようにして、フィールド名だけを表示するようにします。

ALIAS BY に表示したい名前を入力する

1つのフィールドしか表示していないのであれば、これがもっとも簡単です。

複数のフィールドを表示している場合

1つのクエリで複数のフィールドを表示している場合、上記の方法だとすべての凡例が ALIAS BY で設定した名前になってしまいます。

この場合、以下のようにクエリを分けることで一応対応できます。

しかし、1つのクエリで複数のフィールドを表示している場合は、後述するように $col を使う必要があります。

ALIAS BY に $col を指定する

ALIAS BY で指定できる置換パターンの一つに $col があります。

ただし、$col を指定した場合に表示されるのは、フィールドではなく集約関数の名前です。

InfluxDB は必ず集約関数を必要とするので、集約関数をなしにすることはできません。
従って、結局全てのフィールドに alias を設定してやる必要があります。
そうすれば、凡例が各フィールドの alias で入力した値に置換されます。

うーん・・・、フィールド名を表示したいだけなのに結構面倒ですね。
普通に考えて凡例はフィールド名がデフォルトであるべきだと思うんですけどね。