본문으로 건너뛰기

MXQL

노트

MXQL을 알아보기 전에 메트릭스의 개념에 대해 먼저 알아보길 권장합니다. 메트릭스에 대한 자세한 내용은 다음 문서를 참조하세요.

MXQL이란?

MXQL은 와탭의 성능 데이터(메트릭스)를 유연하게 조회하기 위한 쿼리 언어입니다. 하나의 프로젝트에 포함된 여러 에이전트에서 수집한 메트릭스들을 종합적으로 조회하고 활용하기 위해서 사용합니다.

MXQL과 SQL의 차이

많이 알려진 SQL과 비교를 통해 MXQL의 개념을 알아봅니다.

용어

우선 SQL에서 사용하는 용어를 살펴봅니다.

SQL의 데이터 저장 구조

위와 같이 whatap의 데이터베이스(Database)에 product 테이블(Table)이 포함되어 있습니다. product 테이블(Table)은 id, description, 두 개의 컬럼(Column)이 포함합니다. SQL의 Database, Table, Column에 대응하는 MXQL의 용어는 각각 database, category, field입니다.

저장방식MXQLSQL
대분류DatabaseDatabase
중분류CategoryTable
소분류FieldColumn

쿼리(Query)

MXQL과 SQL의 샘플 쿼리입니다. 각 라인의 오른쪽에 주석 내용을 참조하세요.

SQL query
SELECT time, pcode  -- Column 선택(time, pcode 컬럼만 조회하도록 설정합니다.)
FROM app_counter -- Table 선택(app_counter 테이블에서 데이터를 조회합니다.)
WHERE tx_count = 1 -- 데이터 필터링(tx_count column의 값이 1인 데이터만 조회하도록 설정합니다.)
MXQL query
CATEGORY app_counter                 -- app_counter 카테고리에서 데이터를 조회하도록 설정합니다.
TAGLOAD -- 데이터를 조회합니다.
SELECT [ time, pcode ] -- 조회된 전체 컬럼 중에서 time, pcode 필드만 선택합니다.
FILTER { key : tx_count, value : 5} -- tx_count 필드의 값이 5인 데이터만 남깁니다.

실행 결과

MXQL 쿼리를 수행하면 선택한 카테고리에서 선택한 필드의 메트릭스를 조회합니다.

app_counter 카테고리에서 tx_count, tx_error 지표를 조회하는 쿼리는 다음과 같습니다.

MXQL
CATEGORY app_counter                   -- app_counter 카테고리에서 데이터를 조회하도록 설정합니다.
TAGLOAD -- 데이터를 조회합니다.
SELECT [time, oid, tx_count, tx_error] -- 조회하고 싶은 필드의 이름을 설정합니다.

쿼리를 수행하면 다음과 같이 메트릭스를 조회합니다.

MXQL 실행 결과 예시

메트릭스에는 항상 time, oid 값을 포함하기 때문에 MXQL 쿼리에서도 time, oid 필드를 항상 포함해 조회할 것을 권장합니다. 최종 조회한 데이터가 언제(time) 어떤 에이전트(oid)에서 수집한 메트릭스인지 확인할 수 있습니다.