136
126

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kibana4のVisualizeを色々と試してみた

Posted at

はじめに

Kibana4ではKibana3から全面的にグラフの作り方が変わっているので、どんなグラフが作れるのだろう?と思って色々やってみた. Kibana4自体のセットアップや全体的な使い方はこちらの記事にまとまっている. 以下で作成するグラフのデータについても、この記事の中で利用されているテストデータharukasan/kibana-testdataを使わせて頂いた. Kibanaは現時点での最新版であるKibana4beta3を使用した.

Kibana4におけるVisualizeの基本

以下の順番でVisualizeを行う

  1. 対象となるデータを選択する. 新しく検索を行う、既存の検索結果を使う、既存のVisualizeを元にする、と言う選択肢がある
  2. Visualizeの種類を選択する. 面グラフ、線グラフ、等など
  3. 表示する値(Y軸やmetric)を選択する
  4. X軸やSub aggregationを選択する.

Visualizeの種類によっては、Y軸を複数選択して同じグラフに表示したり、Sub aggregationを使ってデータをより詳細に集計して可視化することができる.

Area Chart

積み上げグラフ. Y軸はCount, Average, Sum, Min, Max, Unique count,Sub aggergationはX-Axis, Split Area, Split Chartを選ぶことができる.
例えば、ユニークユーザ数(user_name数)とその年令(user_age)分布を時系列で見たい、とした場合Y-AxisにDate Histogram→Unique Count→Field:user_name, Sub aggregationでX-Axis→Date histogram→Field@timestampと、更にSub aggregationを追加してSplit area→Histogram→Field:user_age→interval:10と選ぶ. すると以下の様なグラフになる.

kibana_stacked1.png

更に、これを男女別に見たい、としたらSub aggregationを追加しSplit Chart→Terms→Field:user_sexとする.

Kibana_stacked2.png

また、view optionsを変更すると積み上げ以外の表現もできる. 例えば、percentageを選ぶと全体を100%としたときの割合で可視化することができる.

Kibana_area3.png

Line Chart

線グラフ. Y軸で選べるものはArea chartと同じ. 例えば、平均年齢と最大年令を時系列で見る場合は、Y-AxisにAverage→Field:user_age, 更にY-Axisを追加してMax→Field:user_age、Sub aggregationでX-axis→Date histogram→Field@timestampとする. 出来上がるのはこんな感じ. Kibana3だと同一レコードの複数系列を同じグラフにするのはできなかったのだが、Kibana4だと単純にY-Axisを追加すればできるようになっている.

Kibana_line1.png

更に、これに対してクエリを条件に系列を分けてみる. 全体のをそのままに、user_countryが"cn"かつ性別が女性のものを別系列とする. この場合、Sub aggregationにSplit lines→Filter→Query1:*, Query2:user_country:"us" AND user_sex:"f"と指定する.

Kibana_line2.png

Data table

データを表形式で表示する. Area chartやLine chartと同様にmetrics(ChartのY軸に相当)とsub aggregationが指定可能. 1つ目のmetricにCount, 2つ目にUnique Count→Field:user_country, Sub aggregationはSplit Rows→Range→Field:user_age From 0 to 30, From 30 to 999, 更にSub aggregationを追加してSplit Rows→Terms→Field:user_sex とした結果が以下.

Kibana_table1.png

Exportをクリックすると、表形式のままCSVでダウンロードすることができる. ちなみに、chartを表示している場合でもグラフ下の矢印をクリックすることで、Data table形式の表示にすることは可能.

Metric

単一の数値を表示する. Sub aggregation等は無い.

Kibana_metric1.png

Pie chart

円グラフ. 時系列の推移ではなく、対象データ全体における特定のデータの割合を表現する. metricsはCountとSumしか指定できない. Sub aggregationは他と同様. metricsにCount of Documents, Sub aggregationでSplit slices→Terms→Field:user_country (top 10)、Sub aggregationを追加してSplit slices→Terms→Field:user_sexとしたグラフが以下.

Kibana_pie1.png

Vertical bar chart

縦棒グラフ. グラフの作り方はArea chartやLine chartと同じ. 例えばuser_country毎のevent数を、user_sexでごとに表示したい、とした場合はY-AxisにCount, Sub aggregationはX-Axis→Terms→Field:user_country(top 10)と、Split bar→Terms→Field:user_sexの2つを指定する. と、以下のようになる.

Kibana_bar1.png

Area chartと同様にview optionsを指定することが可能. 同じグラフでgroupedを選択すると上記のような積み上げではなく、X-Axisの値ごとにグループ化された形で表示される.

KIbana_bar2.png

最後に

Aggregationが可能になったことで、Kibana3よりも色々な切り口での可視化が可能になっていると感じた. Kibana3を触り始めた時、"こんなグラフ作りたいのだけど、できないなぁ"と思っていたようなグラフが作れるようになっている(ついでに、Visualizationの話ではないがScripted Fieldsの機能を使うと、既存フィールドを元に加工した結果を新しいフィールドとして扱うことができるので、これもかなり強力そう). Kibana3にしかできないこともあるが、Kibana3, 4の併用も可能なので両方利用可能にしておいて、Kibana4を積極的に活用していきたい.

136
126
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
136
126

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?