概要
InfluxDBなどのデータから生成したグラフをgrafanaで可視化する際、イベントなどをオーバーレイして表示する「annotation」と呼ばれる機能があります
grafanaの「annotation」はInfluxDB以外の、Elasticsearchなどのデータソースにも対応していますが、本エントリではInfluxDBにおける「annotation」の使い方についてまとめます
なお、grafanaを通してInfluxDBのデータが見れるようになっていること、を前提として本エントリを記述します
実現できること
出来ること
- 記録済みのイベント発生タイミングをグラフにオーバーレイする
- 付加テキストをつける
- オーバーレイに利用する線やマークの色を出し分ける
出来ないこと(2015/03)
- grafanaのUI上から、グラフを見ながらイベント情報を記録する
- 特定のグラフのみにイベントをオーバーレイする
イベント情報の登録
「記録済みのイベント」をどのように記録するか、について記載します
データフォーマット
grafanaで設定したdatasourceの「events」seriesに、下記のカラムを設定して保存すれば、簡単にgrafanaからイベントを取得するように設定できます
- title
- tags
- text
InfluxDBで通常行うように、イベントに時刻を明示的に指定する場合(現在時刻ではなく、過去や未来のイベントを作成する場合)は、timeを追加で指定してください
記録方法
イベントの記録は、
- ログ経由で記録(fluentd-plugin-influxdbなどを活用)
- curlコマンドで直接イベントを記録
- 第3者ツールを利用
- https://github.com/underley/annotate-influxdb
など、様々な方法が考えられます
適宜記録してください
grafanaの設定
grafanaでは、annotationの有効化/無効化や、イベント情報とannotationカラムの紐付けを行います
annotationの有効化/無効化
画面右上の Configure dashboard > Features (tab) を選択し、Annotationsにチェックをつけます
画面左上に歯車のマークが表示されるようになったらうまくいっています
イベント情報とannotationカラムの紐付け
上記「イベント情報の登録」に設定例を示しましたが、grafanaに設定済みの任意のdatasource(多くの場合はdatabase), 任意のseries, 属性をイベント情報として利用することが出来ます
Annotations > Add (tab) からAnnotationを作成します
- Name
- Annotation(イベント列)の識別子なので適宜付与してください
- InfluxDB Query
- event情報が取得できるクエリを指定してください
- Column mappings
- eventをtitle, tags, textという列以外に格納した場合に、どの列をどのように対応づけるか、を指定してください
ここではeventsというNameを付与しています
下記のようなオーバーレイが表示されます
線やマークがカスタマイズできますので、イベント種別毎に色を変えるとか、イベント開始/終了で色を変える、などの利用方法が考えられそうですね
最後に
フィードバックいただければ、随時対応していきます
下記観点でコメントいただければと思います
- 誤っている内容
- 追加の情報(これ知ってるよ!っていう話)
- 記事にして欲しいこと
ありがとうございました