harue
(harue)
February 25, 2020, 1:59am
1
お世話になります。
KibanaのVisualizeの Vertical bar chartについて質問させて頂きます。
▼実現したいこと
・月間の時間別の合計数を表す縦棒グラフを作成
▼作成イメージ
例)indexの項目
日付(yyyy/MM/dd HH: mm:ss) アクセス数
2020/02/01 10:00:00 10
2020/02/01 11:00:00 20
2020/02/02 10:00:00 10
2020/02/02 11:00:00 20
→この場合「10時は20件、11時は40件」と表示
Vertical bar charにて、月間の時間別の合計数を表すグラフを作成することは可能でしょうか?
有識者の方は回答を頂けますと幸いです。
お手数ですが、宜しくお願い致します。
tsgkdt
(tsgkdt)
February 25, 2020, 4:33am
2
日付項目から時間に相当する部分を抽出したフィールドを持っておけば可能かと思います。
イメージとしてはこのようになります。
datetime
アクセス数
時(このフィールドを新設する)
2020/02/01 10:00:00
10
10
2020/02/01 11:00:00
20
11
2020/02/02 10:00:00
10
10
2020/02/02 11:00:00
20
11
新たに作成したフィールド(hourとします)を使えば、期待するような縦棒のグラフを作ることができるかと思います。
次に、hourフィールドをどう作るか、というところです。
データ投入時にhour部分を算出し、設定できるのが一番望ましいかと思います。
今回は便宜的に、日付・時間を格納した@timestampから、ScriptedFieldでhourというフィールドを作成し、そこに時間に相当する数値を入れました。
上のグラフは、そこで作成したhourフィールドをX軸で使っています。
Scripted Fieldの設定は以下のようにしました。
def dt = doc['@timestamp'].value;
//@timestampはUTCで入れたため、日本時間用にするため9時間プラスした
return dt.getHour() + 9;
過去類似の質問としては、こちらになるでしょうか。
夜間(22:00-06:00)や昼間(08:00-17:00)などのように、時間帯を絞った毎日の検索をしたうえで各種グラフを作成を考えております。
毎日の全時間帯を集約したグラフはよく話題に上がりますが、毎日の特定時間帯だけをグラフにしたいです。
Cut&Try繰り返しても、うまくいかず。
皆様のお知恵を貸してください。
登録するIndexは一種類。logstash-yyyy-MM-dd などのように、時間ごとのindex作成はしない構成。
下記のmappingを登録。
"mappings" : {
"my_index" : {
"properties" : {
"Time" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"count" : {
"type" : "integer"
}
Kibana上部の検索窓で、date型のTimeに対して、下記のようなqueryをするイメージで試しました。
Time:["* 22:00:00" TO "* 06:00:00"]
しかし、date型…
ご参考になれば幸いです。
harue
(harue)
March 2, 2020, 7:26am
3
返信が遅くなり申し訳ありません。
日付項目から時間に相当する部分の抽出をingest nodeで実現できました。
▼抜粋
{
"script": {
"lang": "painless",
"source": """def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); def calendar = Calendar.getInstance(); calendar.setTime(df.parse(ctx['@timestamp'])); ctx.time = calendar.get(Calendar.HOUR_OF_DAY);"""
}
},
またvisualizeのフィルターを使用してグラフを作成できました。
回答頂きありがとうございました。
system
(system)
Closed
March 30, 2020, 7:26am
4
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.