GeneA
June 24, 2019, 12:42pm
1
はじめまして。
ある人の行動パターンについて「時間+イベント」という形でelasticsearchにデータがインデックスされているとします。このデータを用いて
・睡眠時間(就寝と起床の時間の差)
・就業時間(職場着と退社の時間の差)
等、イベントとイベントの時間の差をグラフ化する事はできるでしょうか。
もし出来るとしたら、どのような方法で実現できるでしょうか。
timelionの式で実現できるのか、Visual Builderで実現できるのか、等、どのような「ワザ」を使えば実現できそうか教えて頂けると嬉しいです。
インデックスされているデータのイメージは以下の通りです。
date time event(ja) Comment
2019/6/1 22:00 就寝
2019/6/2 7:00 起床
2019/6/2 7:20 職場へ出発
2019/6/2 8:20 職場着
2019/6/2 17:20 退社
2019/6/2 18:20 帰宅
2019/6/2 22:00 就寝
2019/6/3 7:00 起床 休日
2019/6/3 22:00 就寝
2019/6/4 7:00 起床
2019/6/4 7:20 職場へ出発
2019/6/4 8:20 職場着
2019/6/4 17:20 退社
2019/6/5 8:20 職場着 飲み明かしてそのまま出勤
2019/6/5 17:20 退社
2019/6/5 18:20 帰宅
2019/6/6 18:20 就寝
2019/6/7 3:20 起床
一日に発生するイベントはいつも同じとは限りません。ちなみにデータをご覧になるとわかるかと思いますが、この人は就業しない日があります。
Kibanaはバージョン7.0.1をWindows7上で動かしています。
何かアドバイスいただけると助かります。
宜しくお願いいたします。
tsgkdt
(tsgkdt)
June 24, 2019, 1:57pm
2
こんにちわ
イベントのデータをElasticsaerchに取り込むとき、終了ー開始で期間を求めておく、というのはどうでしょうか?
Logsatshのelasticsearch filterの説明で、提示いただいているような内容が例で説明されています。https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html
頂いたデータを以下のような構造にしておけば、
起床(睡眠イベントの終了)がきたら、開始に相当するものを探して、終了時間ー開始時間で期間を求めることができます。
No
datetime
kind
event_type
comment
duration
1
2019/6/1 22:00
睡眠
開始
就寝
----
2
2019/6/2 07:00
睡眠
終了
起床
<ここをfilterで求めておく>
3
2019/6/2 07:20
移動
開始
職場へ出発
----
4
2019/6/2 08:20
移動
終了
職場着
<ここをfilterで求めておく>
あとは、この求めた数値データをグラフ上で表示させてやれば良いということになるのではないでしょうか?
GeneA
June 25, 2019, 4:26am
3
アドバイスありがとうございます。
最初に書いておけばよかったのですが、グラフ化したいイベント2種類の間隔は何を指定するかはわからないのが前提です。そのため、event_typeが開始から開始、終了から終了となっているイベントの間隔をグラフ化する可能性があります。
また、今後イベント自体が一瞬で終わってしまうため、開始終了という意味を持たせにくいもデータを追加する可能性もあります。
timelionの式をうまく駆使するなどして、なるべくデータに項目追加せずにKibanaで対象データを絞り込んでグラフ化できればいいのですが、仰る通り前に発生したイベントに関する情報を次のデータに入れて置く以外に手がないような気もしています。
logstashのfilter使って全てのイベントのデータに直前のイベントとの差を追加する事で何とかできるかもしれません。
本件に関してまた何かアイディアありましたらReply頂けると助かります。
いろいろ試してみます。
ありがとうございました。
GeneA
June 27, 2019, 8:43am
4
その後いろいろdisucussionの投稿を探し回ってみましたが、似たような質問をされた方がいらっしゃいました。
やはりデータ(ドキュメント)を跨ぐような情報を元に計算した結果を
Kibanaでグラフ化するには、インデックス時にイベント発生終了時間を追加する等の工夫が必要そうです。
こんにちは。
elasticserchに格納したデータをkibana4で可視化しようと試みている者なのですが。
以下の要素でデータを格納している場合に、
datetime, user, task_id, status
以下の様なデータが格納されているとして、
2015/10/28 10:10:10, "test_user1", "task_1", "task_begin"
2015/10/28 10:15:10, "test_user1", "task_1", "task_finish"
2015/10/28 10:20:10, "test_user2", "task_2", "task_begin"
2015/10/28 10:25:10, "test_user1", "task_3", "task_begin"
2015/10/28 11:30:10, "test_user2", "task_2", "task_finish"
2015/10/28 12:35:10, "test_user1", "task_3", "task_finish"
task_id毎…
Hi,
I want to display KPIs based on event intervals, e.g.
average time between event A and event B per user
average amount of event C in time per user
I struggle to figure out what is the best way to make this with Kibana, anyone has some ideas or documentation on how to achieve this?
Thanks,
Stefan