Timelionと戯れる
Timelionとは
このあたりを見てもらうとして、「Kibanaで時系列データをもっと活用できたらいいのに」とあるように時系列データに特化した内容のようです。
kibanaだと画面からいろいろ条件を設定してVisualizationからダッシュボードを作っていけるのに対し、
Timelionは、1つの画面でいろいろできる反面、ぱっと見てどうしていいか迷ったので、その備忘録がてらに以下を書いておく。
線グラフをかく
基本は、.es()からスタートするのが良さそう。
↓ これで1つのグラフになる。 追加する場合は、 , で条件を追加していく。
.es(index='logstash-*', q='type:accesslog', timefield='daytime').label('アクセス件数')
parameter名 | サンプル例 | 備考 |
---|---|---|
index | logstash-* | 検索対象とするインデックスを指定する |
q | type:accesslog | 軸の値(y座標の値)をとる条件 |
timefield | daytime | 時間を指定したフィールドを指定する。@timestampとか |
label | アクセス件数 | ラベルを指定する(Legendに出るラベルとなる) |
これで、logstash-* に入れられた中から、 type:accesslogで検索し、その件数を timefieldで指定したdaytimeフィールドの値でグラフ描画する、となる。
画面右上のトグルメニューからヘルプを出すと、設定できるパラメータを見ることができる。
ただ、使わないで!的なのも含まれているため注意が必要。
urlを指定することで、まったく異なるelasticsearchを呼び出して1つの画面内で見せる、ということができそう。
そのうち、elasticsearchのデータと、どこかのOracleDBと、Amazonの何とかサービスのデータをまとめて1つのグラフに、というのが出てきそう。
棒グラフにする
.es(index='logstash-*', q='type:accesslog', timefield='daytime').bars().label('アクセス件数')
棒グラフにする場合は、bars()で指定すると良い。
散布図っぽく
線ではなく点をプロットしたい場合は、 points()を使用すると良い。
もっとも、このデータには全くそぐわない・・・。
.es(index='logstash-*', q='type:accesslog', timefield='daytime').points().label('アクセス件数')
なんか目標値っぽい固定値を足してみる
elasticsearchの中に固定値を入れずに、グラフに表示するやり方がわからなかったので、無理やりやってみた。
他に良い方法があるかもしれない。 → 正式なやり方がわかったので後述。
アプローチとしては、存在しない値を検索すると0件になるので、その値に対して固定値を足すと、Y座標値が固定できるのでは、というもの。
.es(index='logstash-*', q='type:accesslog', timefield='daytime').label('アクセス件数').bars(), .es(index='logstash-*', q='a:b', timefield='daytime').plus(250).label('目標値=250')
.plus(250) で 0件のカウント値 + 250 = 250 を得ているイメージ。
~~
2016/02/19追加
Being productive at #elasticon: Added a .static() function to to #timelion for #kibana for drawing baselines pic.twitter.com/dJwphBMDPk
— Rashid Khan (@rashidkpc) 2016, 2月 18
によると、.static()を使うことでベースラインを描くことが可能っぽい。
.static(value=ここに数値) を入れてやれば良い。軸の追加と同様、staticも足せるし、labelの指定もできる。
.es(index='applicationlog-*', timefield='log_create_date'), .static(value=250000).label('staticテスト'), .static(value=100000).label('staticテスト2')
このstaticが追加された新しいバージョンを使うには、一度古いのを消すと良いようだ。
- kibana plugin -r timelion
- kibana plugin -i elastic/timelion
Timelionいいね!
参考にしたサイト
- 思い切ってelasticのTimelionを取り入れてみた[http://acro-engineer.hatenablog.com/entry/2016/02/04/121500]