본문으로 건너뛰기

Query Manager

Query Manager 화면에서는 요건에 맞는 쿼리를 직접 작성하여 exemONE 수집 DB(Clickhouse 또는 PostgreSQL)에서 데이터를 조회하고, 지표를 생성하여 대시보드·알람·알림에 활용할 수 있습니다.

화면에 들어가려면 좌측 메뉴에서 Performance Analysis > Query Manager를 선택하세요.

노트
  • Clickhouse와 PostgreSQL을 모두 지원합니다. PostgreSQL 지원은 exemone-api v3.0.508.27 이상이 필요합니다.
  • 알람 등록은 Clickhouse Repository 데이터만 지원합니다. PostgreSQL 조회 데이터는 알람으로 등록할 수 없습니다.

화면 구성

Query Manager 화면

순번항목설명
1New Query새 쿼리를 작성합니다.
2Select Database쿼리를 조회할 데이터베이스를 선택합니다. (Clickhouse / PostgreSQL)
3Query List저장된 쿼리 목록입니다.
4Creator / Last Modified ByCreator: 쿼리를 만든 사용자 / Last Modified By: 최근에 쿼리를 수정한 사용자
5ButtonSave: 쿼리를 저장합니다. Save As…: 다른 이름으로 저장합니다. Reset: 작성한 쿼리를 초기화합니다.
6Query쿼리를 입력하는 영역입니다.
7Set Stat Variable지표 변수를 추가합니다.
8Collection쿼리 실행 결과입니다.

쿼리 작성 및 실행하기

쿼리 작성 화면

단계설명
Step 1New Query 버튼을 클릭합니다.
Step 2Select Database에서 Clickhouse 또는 PostgreSQL 중 조회할 DB를 선택합니다.
Step 3Query 입력 영역에 쿼리를 작성합니다.
Step 4변수 설정이 필요한 경우 Set Stat Variable을 활성화하여 변수를 설정합니다.
Step 5쿼리를 실행하여 결과를 확인합니다. 에러가 발생한 경우 저장할 수 없습니다.

지표 변수 설정하기

Set Stat Variable을 활성화하면 쿼리 지표가 설정된 위젯에서 동적으로 값을 참조하여 쿼리를 실행하기 위한 변수를 설정할 수 있습니다.

Set Stat Variable 화면

노트

지표 변수 설정은 Front v3.0.508.137 이상에서 지원합니다.

지표 변수 예약어

변수명설명
fromTime데이터 조회 시작 시간 / 알람 적용 시 집계 범위 시작 시간
toTime데이터 조회 종료 시간 / 알람 적용 시 집계 범위 종료 시간
targetIds범례 위젯에 필터된 대상 태그 바인딩용 변수 (범례 위젯 사용 시 필수) / 알람 적용 시 타겟 설정
clickedTime타임시리즈 차트에서 특정 시간을 클릭했을 때 해당 시간을 참조하는 변수 (트리 그리드에서 사용)

쿼리 예약 함수

함수설명
$_get_targets_from_tags({category}, {tag})target id 추출 함수입니다. 대시보드 변수 필터 사용 시 반드시 사용합니다. 사용자 권한에 포함된 대상만 필터됩니다.
파라미터설명
category (string)대상이 속하는 카테고리입니다. ('host', 'database', 'application' 등)
tag (string)target_id로 추출할 대상 태그입니다. (database;tag;* 형식)
주의

{tag}에는 target_id를 직접 바인딩해서는 안 됩니다. 대시보드 글로벌 변수 필터와 동일한 태그를 지표 변수에 매핑해야 합니다.

쿼리 저장 및 공유하기

대시보드 위젯 또는 알람에서 쿼리 매니저 지표를 사용하려면 저장 시 Share Query 옵션을 활성화하여 Data Setting을 지정해야 합니다.

Save Query 화면

항목설명
Share Query활성화 시 Data Setting 설정이 가능해집니다.
Data IDqm_{Data ID} 형식으로 exemONE Clickhouse DB의 xm_metric 테이블에 저장됩니다.
Data TypeMetric / Current / Scatter / Table 중 선택합니다. Table 1개만 지정하면 Alert Data 토글이 활성화됩니다.
Alert Data활성화 시 알람으로 설정할 수 있습니다. Clickhouse 조회 지표만 해당합니다.

지표 타입

Metric 타입

타임시리즈(Timeseries) 차트에 적용할 수 있습니다.

쿼리의 SELECT 절에 다음 필드를 반드시 포함해야 합니다.

필드명설명
time위젯 x축에 대응되는 시간값 (필수)
value위젯 y축에 대응되는 값 (필수)
target_id대상 id (필수)

지표 변수 fromTime, toTime, targetIds를 사용합니다. 범례 위젯 사용 시 targetIds를 반드시 추가합니다.

select target_id, toStartOfInterval(collect_time, INTERVAL '5 s') as time, argMax(value, collect_time) as value
from metric_dist
where data_id like 'host_stat_active_memory_usage'
and collect_time >= fromTime and collect_time < toTime
and target_id in ($_get_targets_from_tags('host', targetIds))
group by target_id, time

Metric 타입 예시

Current 타입

누적 바(Stacked Bar), 스코어보드(Scoreboard) 차트에 적용할 수 있습니다.

쿼리의 SELECT 절에 다음 필드를 반드시 포함해야 합니다.

필드명설명
value대상별 값 (필수)
target_id대상 id (필수)

동적 조회 범위 적용 시 fromTime, toTime을 사용합니다. 범례 위젯 사용 시 targetIds를 반드시 추가합니다.

SELECT target_id, max(value) as value
FROM metric_dist
WHERE data_id like 'host_stat_active_memory_usage'
AND collect_time >= fromTime
AND collect_time < toTime
AND target_id in ($_get_targets_from_tags('host', targetIds))
GROUP BY target_id

Current 타입 예시

Scatter 타입

스캐터(Scatter) 차트에 적용할 수 있습니다. 최대 10분 범위의 데이터만 표현할 수 있습니다.

쿼리의 SELECT 절에 다음 필드를 반드시 포함해야 합니다.

필드명설명
time위젯 x축에 대응되는 시간값 (필수)
elapse_time위젯 y축에 대응되는 수행시간 값 (필수)
count동일한 x축, y축 값을 가지는 수집 데이터 개수 (필수)
target_ids대상 id 리스트 (array 데이터 필드) (필수)

범례 위젯 사용 시 targetIds를 반드시 추가합니다.

SELECT
toStartOfMinute(collect_time) as time,
elapsed_time,
count(*) as count,
groupArray(instance_id) as target_ids
FROM oracle_sql_elapse_dist
WHERE collect_time >= fromTime
AND collect_time < toTime
AND instance_id in ($_get_targets_from_tags('database', targetIds))
GROUP BY time, elapsed_time

Scatter 타입 예시

Table 타입

이퀄라이저, 트리 그리드, 상위 리스트, 파이(그래프 타입), 필터(셀렉트2 유형) 위젯에 적용할 수 있습니다.

상황필수 필드
필터 위젯 셀렉트2 유형에서 사용 시name(대상 이름), value(대상 ID)
범례 위젯 대상 필터 연동 시target_id(대상 id)

지표 변수는 사용 목적에 따라 다음을 참고합니다.

변수설명
clickedTime타임시리즈 차트에서 특정 시간 클릭 시 해당 시간을 참조합니다. (트리 그리드 사용 시)
targetIds범례 위젯 사용 시 필수입니다. 알람 Table 유형 지표 사용 시에도 필수입니다.
fromTime / toTime알람 설정 시 조회 시간 범위 적용에 사용합니다.
노트

알람 설정 시 범례 위젯 사용 여부와 관계없이 targetIds가 필수이며, 알람 조회 시간 범위 적용 시 fromTime, toTime을 반드시 사용해야 합니다.

필터 위젯 셀렉트2 유형으로 사용하는 샘플 쿼리입니다.

select
distinct
target_id as value,
system_attributes['name'] as name
from target
where target_id in ($_get_targets_from_tags('database','database;tag;*'))

대시보드 위젯 연계

Query Manager에서 저장한 지표(Share Query 활성화 필요)를 대시보드 위젯의 데이터로 활용할 수 있습니다. 위젯 설정에서 쿼리 정의 지표 사용 옵션을 선택합니다.

아래 위젯은 Query Manager를 지원하지 않습니다.

그래프 위젯(일부)

아키텍처 위젯

비즈니스 위젯

알람 지표 등록하기

Query Manager에서 생성한 지표를 알람으로 등록할 수 있습니다. Setting > Alert > User Alert에서 설정합니다.

노트

알람 등록은 exemone-front v3.0.508.32 / exemone-api v3.0.508 / exemone-alerter v3.0.508.11 이상에서 지원합니다. Clickhouse Repository 데이터만 알람 등록이 가능합니다.

지표 등록 절차는 다음과 같습니다.

단계설명
Step 1Clickhouse Repository 데이터로 지표를 생성합니다.
Step 2SELECT 절에 target_id를 포함합니다.
Step 3참조 변수 fromTime, toTime, targetIds를 적용합니다.
Step 4targetIds 참조 변수 사용 시 태그를 반드시 사용합니다.
Step 5지표 저장 시 Share Query를 활성화하고, Data Type을 Table 1개만 지정한 후 Alert Data를 활성화합니다.

알람 지표 등록

알람 등록은 Setting > Alert > User Alert에서 알람 지표를 선택한 후, Table 유형 알람 등록 절차에 따라 진행합니다.

Notification 파라미터 설정하기

Query Manager에서 등록한 지표를 알람 Notification 파라미터로 활용할 수 있습니다. Setting > Alert > Notification에서 알림을 추가하거나 편집할 때 설정합니다.

이메일, 슬랙, 텔레그램, 웹훅, 온사이트 알림 유형을 지원합니다. (KakaoTalk, SMS 미지원)

노트

Notification 파라미터 사용은 exemone-api v3.0.508.51 / exemone-front v3.0.508.39 이상에서 지원합니다.

Notification 파라미터 설정

항목설명
데이터 전송 방식조회 결과의 첫 번째 칼럼의 첫 번째 Row가 파라미터 데이터로 전송됩니다.
파라미터 입력 형식$qm$qm_{data_id}$ 형식으로 입력합니다. data_id 앞에 qm_ 접두사를 반드시 붙입니다.
적용 영역fixed_contents 영역에서만 파라미터를 사용할 수 있습니다.

주의사항

  • Metric / Current 타입 필수 alias: 쿼리 결과 alias에 time, value가 반드시 포함되어야 합니다.
  • 알람 등록 지원 범위: Clickhouse Repository 데이터만 알람 등록이 가능합니다. PostgreSQL 조회 데이터는 알람으로 설정할 수 없습니다.
  • Alert Data 토글 활성화 조건: Data Type에서 Table을 1개만 지정한 경우에만 Alert Data 토글이 활성화됩니다.
  • targetIds 변수 사용 시: 태그 사용이 필수입니다. target_id를 직접 바인딩해서는 안 됩니다.
  • 에러 발생 시 저장 불가: 쿼리 실행 결과에 에러가 발생하면 저장할 수 없습니다. 오류를 수정한 후 저장하세요.
  • 쿼리 매니저 미지원 위젯: Gauge, Action View, Heat map, Daily Comparison, Architecture 위젯, Business 위젯은 Query Manager를 지원하지 않습니다.
  • Notification 파라미터 적용 영역: fixed_contents 영역에서만 파라미터를 사용할 수 있습니다.
  • YAML 파일 작성 시: 들여쓰기 및 띄어쓰기(하위 항목: 2칸)에 주의가 필요합니다.
  • api v3.0.508.27 미만 환경: 기존 spring.query-manager-datasource 항목을 삭제한 후 신규 설정을 적용해야 합니다.