目次
こんにちは、@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のコマンドを利用して、プラグインをインストールします。
bin/kibana plugin -i kibana/timelion
インストールしたら、Kibanaにアクセスして、Timelionを呼び出します。
Timelionへアクセス
ブラウザでlocalhost:5601
にアクセスすると、Kibanaが出てきます。
Kibanaのプラグイン選択のアイコンをクリックし、Timelionのアイコンをクリックします。
すると、初期画面はこんな感じです。 直近15分のElasticsearchに入っているデータがが全部出てきます。 チュートリアルも出てきてます(初回起動時に出たはず)
Kibanaでの検索窓の部分に関数を指定していくことで、グラフが描画できるツールになっています。
サンプル:気温データを可視化
百聞は一見に如かずということで、 気象庁のデータを使って、 ちょっとしたグラフを書いてみました。 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)
デフォルトでは、線グラフが選択されているので、グラフの種類は特に指定はしていません。
明確に指定する場合はlines()
を指定します。
黄色い棒グラフの日照時間
.es(index='tenki2', q='city:naha', metric='avg:sunlight').label(sunlight).bars()
.es()
に関しては最低気温のグラフとほぼ一緒です。異なるのは、metricの取得対象のフィールド名です。
.label()
で凡例を指定しています。先程と同様です。
最後に、棒グラフにしたいため、.bars()
を指定しています。
その他に用意されている関数について知りたい場合は、Timelionのヘルプを表示すると説明が出てきます。
cusum()
のような値を累積して表示するような関数も用意されています。
まとめ
Kibanaとは少し違うアプローチで時系列データを描画するためのツールとなっています。 線グラフと棒グラフを一つのグラフに描画したりもできますし、 累積のグラフなんかも描画できるようになっています。
実験的なプロジェクトである、Timelionの紹介でした。 ここでのノウハウがkibanaにフィードバックされると色々と面白いことになるんじゃないかなと。
ということで、
明日は、zoetroさんの「Kibanaのプラグインの話」になります。 お楽しみに!
comments powered by Disqus
See Also by Hugo
- Kibana3というのもありまして
- elasticsearch-inquisitorプラグインの紹介
- Querqyの調査(その1)
- 2017年のElastic StackとElastic
- Logstashを利用したApacheアクセスログのインポート