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

관련현상

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

해결방법

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

//As is
XContentFactory
    .jsonBuilder()
    .startObject()
    .field("keyword", keyword)
    .field("hits", totalHits)
    .field("seconds", tookSeconds) 
    .timeField("@timestamp", LocalDateTime.now()) 
    .endObject())
//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())