개발자로서 살아남기/ELK Stack 적용하기

ELK - Kibana 날짜별 데이터 비교하기

코드 살인마 2022. 9. 21. 11:07
728x90

개요

팀에서 개발중인 서비스에 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)

x축은 시간 y축은 동접 추이이다.

 

사실 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