엘라스틱서치에 넣은 데이터가 키바나 에서 표시되지 않을 때

관련현상

Index Pattern에 Time Filter 를 지정했음에도 Discover에 아무것도 보이지 않는 현상이 있었다.  엘라스틱서치 포럼이나 구글링을 해봐도 시간 간격을 잘 조정하라는 이야기뿐.

해결방법

인덱싱 생성시 timestamp에 OFFSET 정보 (e.g. +9:00) 을 추가해준다. Kibana에서 시간을 제대로 해석하지 못해서 발생한 문제였다.

1
2
3
4
5
6
7
8
9
//As is
XContentFactory
    .jsonBuilder()
    .startObject()
    .field("keyword", keyword)
    .field("hits", totalHits)
    .field("seconds", tookSeconds)
    .timeField("@timestamp", LocalDateTime.now())
    .endObject())
1
2
3
4
5
6
7
8
9
//To be
XContentFactory
  .jsonBuilder()
  .startObject()
  .field("keyword", keyword)
  .field("hits", totalHits)
  .field("seconds", tookSeconds)
  .timeField("@timestamp",ZonedDateTime.now(ZoneId.of("Asia/Tokyo")).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME))
  .endObject())