【Kibana】Visualizeで実装可能なグラフまとめ

Elastic StackのKibanaでは、データを様々な方法で可視化することができます。KibanaにはVisualizeという機能があり、ダッシュボード等で表示するグラフを作成することができます。

今回は、Visualizeで実装可能なグラフとその特徴についてまとめていきたいと思います。

Visualizeとは

その名の通り、Elasticsearchに取り込んだデータを様々なグラフで可視化するツールです。

ここで作成したグラフはダッシュボードでまとめて表示させることもできます。

Visualizeの種類

ここからは、Visualizeで表現できる可視化方法の特徴を1つずつ見ていきます。

レンズビジュアライゼーション

レンズは簡単かつ直感的なデータの可視化、探索を可能にするUIです。

インデックスをその場で切り替えて様々なデータを容易に探索することができます。また、グラフタイプの切り替えも簡単にできるので、データに合わせて最適な可視化をすることができます。

レンズビジュアライゼーションの画面

レンズでは、指定したデータに最適な可視化方法を提案してくれる機能もあります。データの扱いに慣れないユーザでも効果的な可視化でできるという点もこの機能の魅力だと思います。

レンズでは他のVisualizeに比べて細かい設定はできませんが、簡単に様々なグラフを試せるという点に優れています。

マークダウン

マークダウンはhandlebars.jsおよびマークダウン構文を使用してデータを動的に表示させることができるフル機能のテキストボックスです。

データを表示するだけでなく、URLをリンクとして表示することもできます。

マークダウンは、特にcanvasで画面を作成する際に効果的に活用できます(筆者談)

TSVB

TSVBでは、ダッシュボードでよく用いる可視化方法を実現できます。

TSVBで作成可能な可視化タイプは以下の通りです。

  • 時系列
  • メトリック
  • トップN(値の大きい項目から表示)
  • ゲージ
  • マークダウン

データを集約、グルーピングして表示するのも、UIから簡単に操作可能です。

TSVBの画面

Timelion

Timelion固有の構文を利用して、時系列グラフを描画することができます。独自構文のため習得に時間を要しますが、その分カスタマイズ性は他の機能よりも高いです。

Timelionの画面

注**)バージョン8.0以降ではTimelion機能が削除されるみたいです。これまでに作成したTimelionのVisualizationはダッシュボードに移行できるようです。詳細は以下のリンクで確認ください。

https://www.elastic.co/guide/en/kibana/7.10/release-notes-7.10.0.html#:~:text=%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%EF%BC%8368117-,%E8%A6%96%E8%A6%9A%E5%8C%96,-7.0%E4%BB%A5%E9%99%8D%E3%81%A7%E3%81%AF

vega

vegaではJSON形式の構文を用いてグラフを描画していきます。vegaとはインタラクティブなVisualizationを作成するための宣言型Web言語です。

vega公式↓↓

https://vega.github.io/vega/examples/

vega言語に馴染みの無い方は習得に苦労するかもしれませんが、当然カスタマイズ性は高いです。

筆者はvegaに馴染みがない勢なので、今のところ避けていますが、、(笑)

vegaの画面例

エリア

エリアプロットを描画するときに用います。

エリアの画面例

プロットのパターンもいくつかあるので、見せ方をアレンジすることもできます。

ちなみに以下のグラフは「メトリックと軸」タブ→「Y軸」→「モード」を振動に変更することで作成できます。

エリアの画面例

ゲージ

ゲージでは、メトリックで表示するようなデータ(最新の値など)をメータ形式で表示します。

ゲージの画面例

円形でも表現可能です。

ゲージの画面例

コントロール

直接的な可視化ツールではありませんが、ダッシュボードやcanvasで絞り込み条件として適用させたい条件を作成します。

作成したコントロールをダッシュボードやcanvasに置くことで、作成した絞り込みを行うことができます。

コントロールの画面例

ゴール

ゴールはゲージと似た表現方法ですが、目標値を設定し、それに対する値を表現することができます。

ゴールの画面例

範囲を指定することで、この範囲の値だと何色になるといった指定もできます(自動でグラデーション)。

ゴールの画面例

タグクラウド

タグクラウドはテキスト分析などでよく見かける、重要度を文字のサイズで表した可視化方法です。

タグクラウドの画面例

データテーブル

データテーブルでは表形式でデータを可視化します。

データテーブルの画面例

Elasticsearchの生の値を表示することはできず、なんらかの形で集約したデータを表示することになります。

パイ

パイチャート(円グラフ)を作成するツールです。

パイの画面例

ヒートマップ

ヒートマップを作成するツールです。ブロックタイプのヒートマップを作成できます。

表示する色も変更可能です。

ヒートマップの画面例

マップ

地理データを利用してマップ上にデータを可視化させることができます。

マップ上に可視化させるには、地理空間フィールドがElasticsearchのデータソースに存在する必要があります。また、GeoJSONと呼ばれる辞書型の地理データファイルをKibanaに直接アップロードすることによっても可視化が可能です。

マップの画面例

マップ上のデータの表現方法も様々で、ヒートマップや階級区分図、2区間を直線で結ぶといった表現もできます。

マップの画面例
ヒートマップ

メトリック

メトリックでは、集約や計算によって得られた単一の結果を数字として表示します。

メトリックの画面例

折れ線

折れ線グラフを描画するツールです。必ずしもX軸が時系列である必要はなく、トレンドグラフ以外の折れ線グラフも描画可能です。

折れ線の画面例

横棒

横向きの棒グラフを作成します。横棒のグラフ作成は、基本的にカテゴリ別の分布を見たい場合に行います。

時系列なら縦棒の方が見やすいと思います。

横棒の画面例

縦棒

よく見かける棒グラフです。積み上げ棒グラフも作成可能です。

下の画面例では、しきい線も引いています。

縦棒の画面例

まとめ

KibanaのVisualizeで作成可能なグラフを紹介してきました。簡単に作成できる者から凝った作りが必要なものまで、多様な機能が実装されています。

まずは簡単にできる機能から始め、必要に応じてカスタマイズが必要な機能を試していくといいと思います。

ではでは👋