入力データに後から連番を付与する方法について


#1

お世話になります。

Kibanaで、棒グラフを作成するさいに、連続した番号毎に値を表示させたいと思っています。

前提条件として、インプットデータは連番情報をもっていません。そのため、logstashの設定で後から付与できないかアドバイス頂きたいです。add_fieldなどを駆使して、実現できないか調べていたのですが、なかなか解にたどり着きません。宜しくお願い致します。


(Shota Ito) #2

投入するJSONデータの例を見せてもらうことは可能でしょうか。


#3

下記、投入するJSONデータの例となります。この形式で、日に数百件ものデータが発生します。
目的は、テスト結果(test_score)の推移をグラフで確認したいと思っています。
{
"_index": "sample",
"_type": "logs",
"_id": "AVxDCPYRm1CEamJ-qlgT",
"_score": null,
"_source": {
"test_score": 70,
"test_score_units": "-",
"test_app": "xyz",
"test_type": "system test"
},
"fields": {
"test_date": [
1356999546000
]
},
"sort": [
1495773279560
]
}


(Shota Ito) #4

前提条件として、インプットデータは連番情報をもっていません。そのため、logstashの設定で後から付与できないかアドバイス頂きたいです。

``

Kibanaで、棒グラフを作成するさいに、連続した番号毎に値を表示させたいと思っています。

連続した番号はJSONがElasticsearchに投入された順番で良いのでしょうか。
もしそれで問題なければLogstash(あるいはBeats)経由なら、
Elasticsearchに投入した日時が自動的に@timestampとして登録されます。
その投入日時を使えば縦軸がtest_score、横軸が日時でテスト結果の推移が見られると思います。

もし後からElasticsearchに投入した時間ではなく、
JSONデータが生成された順序で厳密に精度高くみたいのでしたら
JSONの出力に日時データを一緒に出力してあげることをお勧めします。

また、JSONのデータがログ出力されるのであれば、
Logstashだとinput plugin file + fileter plugin jsonで解決出来るかと思います。
Filebeatでもjsonはサポートされているみたいですので、
さくっとやるならfilebeatの方が良いかもしれません。

以下、ご参考まで。


#5

日時データをJSONに出力することで対応できました。
アドバイスありがとうございました。


(system) #6

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.