Kibanaで時系列データを⽐較表⽰する⽅法3選 / Three methods for comparing and displaying time series data on Kibana

62cc09bdd17296303d77a0d1f104dcb5?s=47 j-yama
December 06, 2019

Kibanaで時系列データを⽐較表⽰する⽅法3選 / Three methods for comparing and displaying time series data on Kibana

第34回 Elasticsearch勉強会の発表資料です。

勉強会の詳細はこちら
https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/266551992/

62cc09bdd17296303d77a0d1f104dcb5?s=128

j-yama

December 06, 2019
Tweet

Transcript

  1. Kibana で時系列データを⽐較表⽰する ⽅法 3 選 j__yama 1

  2. tl;dr 時系列データをKibana で⽐較表⽰する⽅法って⾊々あるよね、って話 をします 2

  3. お前誰 ? 名前 ⼭下城司 会社 NTT テクノクロス 好き ギター 8

    弦ギターを買ったのにAAL の曲が全然弾けなくてめげました ゲーム 今年はCeleste のSpeedrun を始めて、Any% 44:00 ギリギリ切れました Elastic Stack コミュニティ活動をしたりしていなかったりしました 3
  4. はじめに Kibana で時系列データを可視化するとき、2 つの異なる期間のグラフ を⽐較表⽰したいことがよくあります。 このLT では、そのときに使える⽅法を、よく使われていそうなケース から順番に紹介していこうと思います。 他にこんなのもあるんじゃない?ってアイデアがあったら、是⾮教え てください!

    4
  5. 可視化に使⽤したデータセット https://www.kaggle.com/nikdavis/steam-store-games steam.csv 5

  6. 時系列データ⽐較のパターン 1. 隣接している 同じ⻑さの別の期間のデータを⽐較表⽰したい 2. 隣接していない 同じ⻑さの別の期間のデータを⽐較表⽰したい 3. ⾃由に 別の期間のデータを⽐較表⽰したい

    6
  7. 1. 隣接している同じ⻑さの別の期間のデータを ⽐較表⽰したい 使えそうなVisualize Bar Chart 期間ごとのデータを単⼀フィールドの値で⽐較するならこっち X-axis に Date

    Histogram を選ぶ Data Table 期間ごとのデータを複数フィールド⽐較したいならこっち Split table に Date Histogram を選ぶ 7
  8. Bar Chart X-axis にDate Histogram を 選ぶ Minimum Interval を⽐

    較したい単位 にする (Yearly, Monthly...) 8
  9. Data Table Split table にDate Histogram を選ぶ その他、表 ⽰したいフ ィールドを

    Split rows などで分割 する 9
  10. 時系列データ⽐較のパターン 1. 隣接している 同じ⻑さの別の期間のデータを⽐較表⽰したい Bar Chart: X-axis に Date Histogram

    を選ぶ Data Table: Split table に Date Histogram を選ぶ 2. 隣接していない 同じ⻑さの別の期間のデータを⽐較表⽰したい 3. ⾃由に 別の期間のデータを⽐較表⽰したい 10
  11. 2. 隣接していない同じ⻑さの別の期間のデータ を⽐較表⽰したい 使えそうなVisualize TSVB(Time Series Visual Builder) 1 ヶ⽉前や1

    年前など、現在の期間と隣接していない期間のデ ータを同じグラフに表⽰したい時はこれ! 同じメトリクスを複数定義し Offset series time by を設定 Timilion ?なんのことです? 11
  12. TSVB で過去の データを⽐較表 ⽰する⽅法 (1/2) 複数同じメト リクスを定義 する 12

  13. TSVB で過去のデータを⽐較表 ⽰する⽅法 (2/2) 過去のデータを表⽰したい⽅ のメトリクスのOptions で、 Offset series time

    by (1m, 1h, 1w, 1d) を設定する 13
  14. TSVB による別期間データの⽐較表⽰例 14

  15. 時系列データ⽐較のパターン 1. 隣接している 同じ⻑さの別の期間のデータを⽐較表⽰したい Bar Chart: X-axis を Date Histogram

    に Data Table: Split Table を Date Histogram に 2. 隣接していない 同じ⻑さの別の期間のデータを⽐較表⽰したい TSVB: 同じメトリクスを複数定義し Offset series time by を設定 3. ⾃由に 別の期間のデータを⽐較表⽰したい 15
  16. 3. ⾃由に別の期間のデータを⽐較表⽰したい Dashboard の中で右上で設定した期間と関係なく別の期間の Visualize を表⽰するのは、昔から⼀番やりたそうなケースですが、 v7.3.x 以前では実現することができませんでした。 相談されても「それは難しいんですよねぇ… 」と⾔って1

    か2 のケ ースを紹介することが多かった が、v7.4.0 以降ではDashboard 内の各Visualize について、異なる期 間を指定することができます! 16
  17. Dashboard のタイムレン ジとは異なる期間のデー タを Visualize で表⽰する 設定⽅法 (1/2) Dashboard 内に配置し

    たVisualize の右上をク リックして開くメニュ ーから、 Customize time range をクリックする 17
  18. Dashboard のタイムレン ジとは異なる期間のデー タを Visualize で表⽰する 設定⽅法 (2/2) カスタム設定したい期 間を⼊⼒して反映する

    18
  19. Dashboard のタイムレンジとは異なる期間の Visualize 表⽰例 19

  20. 公式の⽐較イメージ https://www.elastic.co/jp/blog/kibana-7-4-0-released 20

  21. 時系列データ⽐較のパターン 1. 隣接している 同じ⻑さの別の期間のデータを⽐較表⽰したい Bar Chart: X-axis に Date Histogram

    を選ぶ Data Table: Split table に Date Histogram を選ぶ 2. 隣接していない 同じ⻑さの別の期間のデータを⽐較表⽰したい TSVB: 同じメトリクスを複数定義し Offset series time by を設定 3. ⾃由に 別の期間のデータを⽐較表⽰したい Dashboard: Kibana 7.4.0 以降を使えば、Visualize 別に設定可能 21
  22. おわりに Kibana 7.4.0 で追加されたダッシュボード内で違う期間のVisualize を配置できる機能、最⾼っす 同じグラフを並べて⽐較したい時はこれが決定版になりそう 今⽇のLT と全然関係ないけどKibana Lens 、ヤバいのでは?

    全てのVisualize が過去になった 22
  23. Appendix 23

  24. その他 Tips(1/3) ⾊々な⽅法があると思いますが、僕がやるときにはデータを投⼊する 時に@timestamp から年度フィールドを作成することが多いです。 Logstash でやるなら次のスライドのようなfilter を使ったりすればでき ます。 …

    もっと良いやり⽅あれば教えてください… 年別ではなく年度別で⽐較表⽰したいときはどうすれば良いです か? “ “ 24
  25. filter { # @timestamp の年と⽉を別フィールドとして追加する。 mutate { add_field => {

    "start_month" => "%{+M}" } add_field => { "calendar_year" => "%{+YYYY}" } } # 追加したフィールドの型を数値型にする。 mutate { convert => { "start_month" => "integer" "calendar_year" => "integer" } } ruby { # 追加したフィールドの内容に応じて年度フィールドを追加する。 # スライド表⽰の関係上、改⾏しているが、本来は1 ⾏。 code => "event.set('fiscal_year', event.get('start_month') < 4 ? event.get('calendar_year') - 1 : event.get('calendar_year'))" } } 25
  26. その他 Tips(2/3) マイナスの値を設定することで、未来のデータを表⽰することもでき ます。 TSVB のOffset は過去に対してしか、ずらせないんでしょうか? “ “ 26

  27. その他 Tips(3/3) 新しく追加された機能は、基準値と⽐較したい、みたいなケースに使 えると思います。基準値を絶対に時系列データとして投⼊されない⽇ 時のあたりに配置しておいて、そこを表⽰するようにします。 これで、これまでは難しかった基準値との⽐較ができるようになるは ず。 ダッシュボード内で違う期間のVisualize を配置できる機能って、 他の活⽤法とかないんです?

    “ “ 27