# Kibana4でのデータの計算と可視化について

**URL:** <https://discuss.elastic.co/t/kibana4/33131>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [October 28, 2015, 8:14am UTC](https://discuss.elastic.co/t/kibana4/33131 "2015-10-28T08:14:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tiad](https://avatars.discourse-cdn.com/v4/letter/t/9e8a1a/32.png) [@tiad](https://discuss.elastic.co/u/tiad)\
**Post date:** [October 28, 2015, 8:14am UTC](https://discuss.elastic.co/t/kibana4/33131/1 "2015-10-28T08:14:25Z")

</div>

こんにちは。  
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毎にbeginからfinishまでの時間を求めてユーザー毎の平均グラフにする等の、  
データ同士の計算結果をグラフにすることは可能だったりするのでしょうか？

やはり、計算したデータを別途elasticserchに格納する必要があるのでしょうか？

上記はデータの一例ですが、  
データの応用的な可視化の方法等ございましたら、ご教授いただけると助かります。  
よろしくお願いします。

---

<div class="post-metadata">

**Author:** ![suzuki](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/suzuki/32/44789_2.png) [@suzuki](https://discuss.elastic.co/u/suzuki)\
**Post date:** [October 28, 2015, 9:35am UTC](https://discuss.elastic.co/t/kibana4/33131/2 "2015-10-28T09:35:16Z")

</div>

Kibana4 だけで、ご希望の結果を出力するのは難しそうな気がします。

begin, finish の結果を1行に収めるような形に加工して Elasticsearch へ格納すれば、「ユーザー毎の平均グラフ」を実現できそうな気配は感じます。

もともとのログ出力を1行にまとめてしまえるのであれば、それが一番簡単そうですね。

---

<div class="post-metadata">

**Author:** ![tiad](https://avatars.discourse-cdn.com/v4/letter/t/9e8a1a/32.png) [@tiad](https://discuss.elastic.co/u/tiad)\
**Post date:** [October 29, 2015, 1:26am UTC](https://discuss.elastic.co/t/kibana4/33131/3 "2015-10-29T01:26:03Z")

</div>

なるほど、

１行に収めると可能性があるのですね。  
カラムにbigin\_time,finish\_timeを追加する感じでしょうか？  
それとも、processing\_timeみたいなカラムを追加して計算した時間を格納する感じでしょうか？

例えば、データのstatus欄に"bigin\_time='2015/10/28 10:25:10' finish\_time='2015/10/28 10:35:10'"と格納して計算できたりするのでしょうか？

Scripted fields やAggregation等がわかると少し表現できる幅が広がったりするのでしょうか？  
疑問ばかりになってしまい、恐縮です。

もともとのログ出力をまとめることができないので、  
１クッション加工を挟んで格納することを検討してみます。  
ありがとうございます。

---

<div class="post-metadata">

**Author:** ![suzuki](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/suzuki/32/44789_2.png) [@suzuki](https://discuss.elastic.co/u/suzuki)\
**Post date:** [October 29, 2015, 5:21am UTC](https://discuss.elastic.co/t/kibana4/33131/4 "2015-10-29T05:21:17Z")

</div>

> カラムにbigin\_time,finish\_timeを追加する感じでしょうか？  
> それとも、processing\_timeみたいなカラムを追加して計算した時間を格納する感じでしょうか？

僕がやるとしたら、複数行のログを1行に加工する際に `processing_time` を計算してしまいますかねぇ。

```auto
{"timestamp": "2015/10/28 10:10:10", "user": "test_user1", "task": "task_1", "start": "2015/10/28 10:10:10", "finish": "2015/10/28 10:15:10", "processing_time": "【計算した差分】"}
{"timestamp": "2015/10/28 10:20:10", "user": "test_user2", "task": "task_2", "start": "2015/10/28 10:20:10", "finish": "2015/10/28 10:30:10", "processing_time": "【計算した差分】"}
{"timestamp": "2015/10/28 10:25:10", "user": "test_user1", "task": "task_3", "start": "2015/10/28 10:25:10", "finish": "2015/10/28 10:35:10", "processing_time": "【計算した差分】"}

```

`begin`, `finish` は `processing_time` があれば要件的には不要な気がしますが、「入れられるものは入れておけ」的な考えで、とりあえず残しておくと思います。

これで `user` を軸に集計してしまえば、いけそうな気がします。  
（実際には試していないので、うまくいかなかったらごめんなさい）

> Scripted fields やAggregation等がわかると少し表現できる幅が広がったりするのでしょうか？

Kibana4 でグラフを作る場合には「既に用意されている Aggregation を使ってグラフを描画する」というイメージになると思います。

Elasticsearch の Aggregation の知識があれば、どのような集計をしているのかを理解しやすくなりますが、Kibana4 の表現力そのものが拡張できるわけではないです（Kibana4 を拡張をするなら別ですが）

まずは、Kibana4 で何ができるのか試してみて、それ以上の表現力が欲しくなったときに、次をどうするか考えるのが良いのではないでしょうか。

---

<div class="post-metadata">

**Author:** ![tiad](https://avatars.discourse-cdn.com/v4/letter/t/9e8a1a/32.png) [@tiad](https://discuss.elastic.co/u/tiad)\
**Post date:** [October 29, 2015, 6:28am UTC](https://discuss.elastic.co/t/kibana4/33131/5 "2015-10-29T06:28:11Z")

</div>

丁寧に回答していただきありがとうございます。

なるほど、できることの理解が足りなかったようですね。（表現力を求めすぎていました。）  
格納するデータの時点での加工も必要なことがわかりましたので、  
まずは、Elasticserch+Kibana4で可能な幅の理解から始めようと思います。

その後、ほしい情報と照らしあわせて考えると良いのかもしれませんね。  
現段階でも生ログをコンソールで見ている状態からは随分進歩しているので。

ありがとうございました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:50pm UTC](https://discuss.elastic.co/t/kibana4/33131/6 "2017-07-06T13:50:50Z")

</div>


