@johtaniの日記 2nd

@johtani ‘s blog 2nd edition

Timelionの紹介 - Elasticsearch Advent Calendar 2015 1日目

こんにちは、@johtaniです。

早いもので、師走です。今年もあと少しとなりました(今月が一番忙しかったりしますが。。。)。 ということで、Advent Calendarの季節が始まりました。

この記事はElasticsearch Advent Calendar 2015の1日目のエントリです。

今日は、最近公開されたTimelionの紹介をしたいと思います。

Timelion?

11/12に公開されたばかりのアプリになります。(公式のブログはこちら。ブログでは動画による説明もあり)

Kibanaにプラグインとしてインストールすることで使用することができるようになるアプリです。 Timelionと書いて「Timeline」と読むようです。 Kibanaとは異なるグラフ描画のプラグインになっています。

Kibana 4.2からプラットフォーム化

Kibana 4.2から、Kibanaにプラグイン機構が導入されました。 Kibanaとしての機能以外にも、プラグインとして、アプリを追加できるようになっています。 Timelionもその一つです。

インストール

Timelionを試してみるには、ElasticsearchとKibanaが必要になります。(こちらは、すでにインストールされているとして。。。)

Kibanaのコマンドを利用して、プラグインをインストールします。

1
bin/kibana plugin -i kibana/timelion

インストールしたら、Kibanaにアクセスして、Timelionを呼び出します。

Timelionへアクセス

ブラウザでlocalhost:5601にアクセスすると、Kibanaが出てきます。 Kibanaのプラグイン選択のアイコンをクリックし、Timelionのアイコンをクリックします。

すると、初期画面はこんな感じです。 直近15分のElasticsearchに入っているデータがが全部出てきます。 チュートリアルも出てきてます(初回起動時に出たはず)

Kibanaでの検索窓の部分に関数を指定していくことで、グラフが描画できるツールになっています。

サンプル:気温データを可視化

百聞は一見に如かずということで、 気象庁のデータを使って、 ちょっとしたグラフを書いてみました。 1年間の気温の推移と日照時間になります。

上のグラフが那覇、下グラフが札幌の気温のグラフになります。

  • 赤いライン:最高気温
  • 青いライン:最低気温
  • 黄色い棒グラフ:日照時間

最低気温と日照時間はグラフは次のような式で描画しています。

青いラインの最低気温

気温のグラフになります。

1
.es(index='tenki2', q='city:naha', metric='avg:temperature_min').label('min'),

.es()がelasticsearchに対するデータ取得の関数です。 引数は次のような意味になります。 * index:対象とするインデックス名 * q:検索クエリ。ここでは、cityというフィールドにnahaで検索。 * metric:描画対象となっているデータの入ったフィールド。temperature_minというフィールドの1日毎の平均値を取得

最低気温と最高気温は別々のフィールドに格納してあります。最高気温の場合は(temperature_max)を指定します。

.label(min)で、グラフの凡例の指定です。 残念ながら、日本語の指定は現時点(2015年12月01日時点)ではうまくいかなかったです。(https://github.com/elastic/timelion/issues/17%EF%BC%89

デフォルトでは、線グラフが選択されているので、グラフの種類は特に指定はしていません。 明確に指定する場合はlines()を指定します。

黄色い棒グラフの日照時間
1
.es(index='tenki2', q='city:naha', metric='avg:sunlight').label(sunlight).bars()

.es()に関しては最低気温のグラフとほぼ一緒です。異なるのは、metricの取得対象のフィールド名です。

.label()で凡例を指定しています。先程と同様です。

最後に、棒グラフにしたいため、.bars()を指定しています。

その他に用意されている関数について知りたい場合は、Timelionのヘルプを表示すると説明が出てきます。 cusum()のような値を累積して表示するような関数も用意されています。

まとめ

Kibanaとは少し違うアプローチで時系列データを描画するためのツールとなっています。 線グラフと棒グラフを一つのグラフに描画したりもできますし、 累積のグラフなんかも描画できるようになっています。

実験的なプロジェクトである、Timelionの紹介でした。 ここでのノウハウがkibanaにフィードバックされると色々と面白いことになるんじゃないかなと。

ということで、

明日は、zoetroさんの「Kibanaのプラグインの話」になります。 お楽しみに!

Comments