Query Manager
Query Manager 화면에서는 요건에 맞는 쿼리를 직접 작성하여 exemONE 수집 DB(Clickhouse 또는 PostgreSQL)에서 데이터를 조회하고, 지표를 생성하여 대시보드·알람·알림에 활용할 수 있습니다.
화면에 들어가려면 좌측 메뉴에서 Performance Analysis > Query Manager를 선택하세요.
- Clickhouse와 PostgreSQL을 모두 지원합니다. PostgreSQL 지원은 exemone-api v3.0.508.27 이상이 필요합니다.
- 알람 등록은 Clickhouse Repository 데이터만 지원합니다. PostgreSQL 조회 데이터는 알람으로 등록할 수 없습니다.
화면 구성

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

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

| 항목 | 설명 |
|---|---|
| Share Query | 활성화 시 Data Setting 설정이 가능해집니다. |
| Data ID | qm_{Data ID} 형식으로 exemONE Clickhouse DB의 xm_metric 테이블에 저장됩니다. |
| Data Type | Metric / 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

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

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

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 1 | Clickhouse Repository 데이터로 지표를 생성합니다. |
| Step 2 | SELECT 절에 target_id를 포함합니다. |
| Step 3 | 참조 변수 fromTime, toTime, targetIds를 적용합니다. |
| Step 4 | targetIds 참조 변수 사용 시 태그를 반드시 사용합니다. |
| 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 이상에서 지원합니다.

| 항목 | 설명 |
|---|---|
| 데이터 전송 방식 | 조회 결과의 첫 번째 칼럼의 첫 번째 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항목을 삭제한 후 신규 설정을 적용해야 합니다.