ELK - Kibana 날짜별 데이터 비교하기
개요
팀에서 개발중인 서비스에 ELK을 붙인 이후, kibana에서 데이터를 이용해 다양한 종류의 visualize을 만들고 있었다. (유저 동접 추이, 특정 게임 동접수 등등)
ELK와 비슷한 역할을 하는 NHN CLOUD의 Log N Crash 라는 서비스가 있는데, 여기서 제공해주는 visualize 중, 날짜별 데이터를 비교해주는 서비스가 있었다.
같은 기능을 kibana에서도 구현할 수 있을까 구글링을 해봤는데 kibana에서도 제공하는 기능이였다!!

하지만 역시.. 현재 사용하는 ELK 버전에는 존재하지 않은 기능 ㅎㅎ..
결국 찾은 건 visualize 종류 중 Timelion이다.
Timelion은 시계열 데이터 분석에 특화되어 있으며, 함수 형식의 표현식을 사용한다.
또한 코드가 직관적이고, 자동완성을 지원하기 때문에 접근성도 좋은 편이다.
엘라스틱 공식 가이드의 코드와 예제를 보면 쉽게 익힐 수 있다.
공식 가이드의 Compare the data 부분을 참고하여 7일전 동접 수 비교 코드를 작성했다.
.es(index=인덱스이름,
timefield="@timestamp",
metric="sum:userCount")
.label("current day")
.lines(width=3)
.color(#1E90FF)
.legend(columns=2, position=nw) ,
.es(offset=-1M,
index=ccu-*,
timefield="@timestamp",
metric="sum:userCount")
.label("-1 Month")
.title("compare -1Month")
.lines(fill=1,width=0.5)
.color(gray)

사실 kibana에서 제공하는 time shift 기능이 더 daynamic하다. 하지만 차선책으로 사용하기에는 Timelion도 나쁘진 않다.
참조
[timelion 공식 가이드] - https://www.elastic.co/guide/en/kibana/current/timelion.html
[timelion 참고] - https://kangmyounghun.blogspot.com/2017/12/timelion.html
[내 버전에만 없는 kibana time shift 공식 가이드] - https://www.elastic.co/guide/en/kibana/7.17/create-a-dashboard-of-panels-with-ecommerce-data.html