問題
- Kibanaを用いて、曜日毎のデータ集計を行いたい。
- 曜日フィールドを設けるために、事前にデータ加工するのは手間がかかる。
対策
- Kibanaのscript定義を利用して、Timestampから曜日フィールドを作成する。
結果
-
scriptの内容
(ceil((doc['@timestamp'].value + (9 * 60 * 60 * 1000)) / 1000 / 60 / 60 / 24) - 4) % 7
-
説明
- doc['@timestamp'].valueで日付のlong値表現を取得。
-
9 * 60 * 60 * 1000
を減算することで、標準時と日本時間とのズレを補正する。 - long値の基点となる1970/1/1は水曜日のため、
4
を減算することで、日曜日が0になるように補正する。