2018년 6월 21일 엔지니어링

Kibana의 쿼리 언어 개선 사항

By Matt Bargar

​버전 6.0에서는 Kibana의 쿼리 모음에 추가되는 새로운 실험적 언어를 소개했습니다. 그 이후로 사용자의 피드백에 귀를 기울이며 계속 개선해 왔습니다. 다른 모든 실험과 마찬가지로 일부는 성공하였지만 그렇지 않은 것도 있었습니다. 6.3에서 변경된 기능, 새로운 기능, 앞으로 나아가려는 방향을 살펴보겠습니다.

또 하나의 시작 이야기

Kibana 쿼리 언어의 첫 반복은 복잡했습니다. 쿼리 모음과 필터 모음을 통합하고자 했기 때문에 새로운 언어는 제공되는 모든 필터 유형을 지원해야 했습니다. 또한, 현재 lucene 쿼리 구문의 사용 편의성을 유지하고자 했습니다. 결국 고급 함수 구문과 기본 쿼리 구문을 단일 언어에 녹여내는 시도를 하게 되었습니다. 이는 언제 어떤 구문을 사용해야 하는지 확실히 알지 못하는 새로운 사용자에게 혼란만 주었습니다.

간소화된 구문

버전 6.3에서는 언어를 대폭 간소화했습니다. 모든 것을 한 곳에 집어넣으려고 애쓰는 대신 사용 편의성에 모든 초점을 맞추었습니다. 함수 구문은 없애고 기본 구문을 강화했습니다. 현재 Kibana에서 기본적으로 사용하는 lucene 쿼리 구문에 익숙하다면 이 새로운 언어도 쉽게 사용할 수 있을 것입니다. 몇 가지 수정 및 개선 사항을 제외하고는 거의 동일합니다. 예를 들어 범위 연산자가 약간 변경되었고, 새로운 언어의 첫 번째 반복에서 가져온 스크립트 필드 지원이 포함되었습니다. 새로운 구문에 대한 자세한 내용은 이 문서에서 확인할 수 있습니다.

그렇다면 기존 lucene 쿼리 언어와 거의 비슷한 새로운 언어를 갖게 된 것이 왜 그리 중요할까요? Kibana만을 위한 언어를 구축할 때의 주요 이점은 Kibana가 그 언어를 이해한다는 것입니다. 구문을 분석하고 점검할 수 있는 언어가 있으면 멋진 기능을 많이 개발할 수 있습니다. Elastic은 바로 그 일을 시작했습니다.

자동 완성

Kibana 자동 완성

그렇습니다. 버전 6.3에서는 Kibana의 쿼리 모음에 자동 완성 기능을 추가했습니다. 입력을 시작하면 필드와 값(키워드 필드의 경우), 쿼리 연산자에 대한 제안이 표시되기 시작합니다. 따라서 힘들게 나머지 문자를 입력할 필요가 없습니다. 모든 필드 이름의 철자를 기억하려고 노력할 필요도 없습니다. 한 손으로 검색하는 것을 좋아하시나요? 이제 쿼리를 마우스로 작성할 수도 있습니다. 말로 더 설명하는 것보다는 직접 사용해 보면 아실 겁니다. 자동 완성을 사용해본 사람들 대부분이 ‘Kibana의 이전 버전은 다시 사용하지 못할 것 같다’고 한다는 점에 주목하시기 바랍니다.

한 번 사용해 보세요

제 설명으로 한 번 사용해보고 싶은 마음이 생기셨기를 기대합니다. 아직 실험 단계이므로 Kibana의 기본 언어는 여전히 Lucene 쿼리 구문이지만, 그 어느 때보다 쉽게 새로운 언어로 옵트인할 수 있습니다. Kibana의 고급 설정을 전혀 변경할 필요가 없습니다. 쿼리 모음에서 [Options] 버튼을 클릭하고 [Turn on query features] 토글을 활성화하기만 하면 됩니다.

Kibana 쿼리 개선 옵트인

Kibana의 새로운 언어를 사용해 본 후 어떻게 생각하는지 알려주세요! 토론 포럼에 글을 게시하거나 IRC에서 채팅을 할 수 있습니다. 버그 보고와 개선 요청은 GitHub 리포지토리에 올려주세요. 버전 6.0 이후에 변경한 내용 대부분이 사용자 피드백의 결과입니다. 정말 감사합니다! 자동 완성은 빙산의 일각에 불과합니다. Kibana의 새로운 쿼리 언어에 대한 여러가지 아이디어를 가지고 있습니다. 언젠가 이 고급 언어가 독자적으로 사용될 날이 올수도 있겠습니다. 😎