exemONE 데이터 보관 설정 / Custom Stat / 수집 주기 관리 기능 가이드
데이터 관리
1. 데이터 보관 설정
1-1. 개요
메뉴 경로: 환경설정 > 데이터 > 보관 주기 탭
플랫폼별 데이터 테이블 목록을 확인하고, 보관 주기 및 테이블 보관 용량을 설정하여 수집 서버 디스크 용량을 관리합니다.
1-2. 기본 뷰 화면 설명

| 항목 | 설명 |
|---|---|
| Platform | 플랫폼 종류 |
| Table Name | 테이블 이름 |
| Description | 테이블 설명 |
| Size | 테이블이 사용하고 있는 현재 크기 |
| Retention (Day) | 보관 주기 |
| Average Daily Usage (GB) | 하루 평균 사용 크기 |
| Maximum Daily Usage (GB) | 하루 최대 사용 크기 |
| Size Limit | 테이블의 Limit 정보 |
1-3. 신규 설치 및 패치 시 기본값
| 항목 | 내용 |
|---|---|
| 신규 설치 기본값 | 보관 주기 90일, 테이블 보관 용량 10GB |
| 패치 시 | 기존 테이블 설정값 유지, 신규 생성 테이블은 기본값 적용 |
| 메타데이터 테이블 | 등록정보 및 메타데이터 성격의 테이블은 보관 주기 기본값이 "제한 없음" 으로 적용 |
메타테이블 목록 (영구 보존 대상 주요 예시):
altibase_literal_sql_text / altibase_normalized_sql_text
application_db_info / application_jvm_info / application_properties
aws_alarm / aws_ec2 / aws_rds
clickhouse_literal_sql_text / clickhouse_normalized_sql_text
database_host_history / database_info
infra_system_info / inserted_sql_stat / inserted_sql_stat_v2
redis_cluster_info / redis_info
target_status / tibero_sql_text_v2 외 다수
1-4. 보관 주기 설정
메뉴 경로: 환경설정 > 데이터 > 보관 주기 > 테이블 목록
설정하고자 하는 테이블을 체크 후 오른쪽 상단 [Retention Setting] 버튼을 클릭하여 설정합니다.

보관 주기를 변경할 테이블의 체크박스를 선택 후 [Retention Setting] 버튼을 클릭합니다.

보관 주기를 입력하여 변경합니다.

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Platform | 플랫폼 종류 |
| 2 | Table Name | 테이블 이름 |
| 3 | Description | 테이블 설명 |
| 4 | Size | 테이블이 사용하고 있는 현재 크기 |
| 5 | Retention (Day) | 보관 주기 |
| 6 | Average Daily Usage (GB) | 하루 평균 사용 크기 |
| 7 | Maximum Daily Usage (GB) | 하루 최대 사용 크기 |
| 8 | Size Limit | 테이블의 Limit 정보 |
| 9 | Button | Cancel: 보관 주기 설정 취소 / Apply: 보관 주기 설정 적용 |
설정 관련 주요 사항:
| 항목 | 내용 |
|---|---|
| 설정 방법 | 날짜를 직접 지정하거나 "제한 없음" 토글 활성화로 무제한 설정 가능 |
| 변경 후 적용 소요 시간 | 변경 후 적용까지 약 1분 소요 |
| 보관 주기 체크 주기 | 기본 1분 |
1-5. 테이블 보관 용량 설정
전제 조건: 테이블 보관 용량 설정은 "로깅" 플랫폼인 경우만 설정 가능하며, 설정 불가능한 테이블의 경우 "제한 없음"이 기본값으로 적용됩니다.


| 항목 | 내용 |
|---|---|
| 설정 단위 | MB / GB 단위로 직접 설정 또는 "제한 없음" 설정 |
| "제한 없음" 설정 시 | 테이블 용량을 체크하지 않음 |
| 테이블 보관 용량 체크 주기 | 기본 1시간 |
| 용량 초과 시 동작 | 테이블 크기가 설정값을 초과하는 경우 가장 오래된 데이터부터 삭제 진행, 설정된 Size Limit이 될 때까지 반복 |

1-6. 테이블 관계 규칙
특정 테이블의 경우 아래와 같이 생성 및 변경 규칙이 적용됩니다.
규칙 1: _1, _2 테이블
연계 테이블의 설정값을 상속하며, 해당 테이블 변경 시 상위 테이블 변경이 필요합니다.

| 항목 | 내용 |
|---|---|
| 예시 | alert_history_agg_10min 보관 주기 변경 시 alert_history_agg_10min_1 테이블도 같이 변경 |
| 단독 변경 | _1, _2 테이블 단독 변경 불가 (변경 시 관련 테이블 일괄 변경 필요) |
규칙 2: _v2, _v3 테이블
연계 테이블과 동일한 Merge 엔진인 경우만 설정값이 상속됩니다.

| 항목 | 내용 |
|---|---|
| 예시 | oracle_sql_plan, oracle_sql_plan_v2는 MergeTree 엔진으로, oracle_sql_plan 설정값 변경 시 oracle_sql_plan_v2도 같이 변경 |
| 단독 변경 | 동일 Merge 엔진인 경우 단독 변경 불가 |
| 엔진 확인 방법 | xm_meta_clickhouse_table 테이블에서 확인 가능 |
규칙 3: Merge 그룹 신규 테이블 추가
| 항목 | 내용 |
|---|---|
| 동작 | Merge 그룹에 새로운 테이블 추가 시, Merge 그룹 테이블 중 가장 큰 보관 주기로 동기화 |
| 예시 | table_v1, table_v1_1, table_v1_2가 각각 30, 60, unlimited(0)일이면 새로 추가되는 테이블과 table_v1은 unlimited로 동기화 |
1-7. 보관 주기 체크 주기 변경
테이블 보관 주기 체크 주기를 빠르게 적용하려면 CORE 환경 변수 설정을 통해 변경 가능합니다.
(도커 설치 기준) $EXEMONE_HOME/docker-compose.yml 파일 내 core 항목에 환경변수를 추가합니다.
# $EXEMONE_HOME/docker-compose.yml 파일 중 core 설정
environment:
HOST_UID: ${EXEMONE_USER_UID}
HOST_GID: ${EXEMONE_USER_GID}
SIZE_RETENTION_INTERVAL: 2 # 2분 주기 체크
2. Custom Stat
2-1. 개요
메뉴 경로: Setting > Management > Custom Stat
SQL, Shell Script를 통해 사용자가 직접 지표를 생성하고 수집할 수 있는 기능입니다.
전제 조건:
| 항목 | 내용 |
|---|---|
| Shell Script 실행 조건 | Host Agent가 설치된 서버에서만 실행 가능 |
| SQL 실행 조건 | Database 인스턴스가 등록된 경우에만 실행 가능 |
| 대상 OS | Linux, Windows |
| 수집 데이터 형식 | 지표는 숫자로만 표현 가능 |
| 접근 권한 | Master, Admin만 접근 가능 |

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Custom Stat | Shell Script 또는 SQL Script를 통해 사용자 지표를 생성합니다. |
| 2 | Collection Schedule Management | Custom Stat에서 생성한 지표를 수집하는 스케줄을 생성합니다. |
2-2. Scripts to Create Stat (스크립트 생성 화면)
스크립트 및 폴더를 생성하는 화면입니다.

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | New Script | 새로운 스크립트를 생성합니다. |
| 2 | Create Folder | Script Folder를 생성합니다. |
| 3 | Search | 리스트에서 각 칼럼 정보로 Script를 검색합니다. 대소문자 구분 없이 입력합니다. 검색 결과가 없을 경우 'No data.'를 보여줍니다. |
| 4 | Folder List | 저장된 Script 리스트를 출력합니다. Script가 실행 가능한 플랫폼을 아이콘으로 출력합니다. Schedule이 등록된 경우 아이콘을 출력합니다. |
2-3. New Script (스크립트 생성)

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | New Script | 새로운 스크립트 생성 |
| 2 | Script Type | Script Type 선택 (Shell Script / SQL) |
| 3 | Search | 리스트에서 각 칼럼 정보로 검색. 대소문자 구분 없음 |
| 4 | Select Test Target | 테스트를 실행할 타겟을 선택합니다. |
| 5 | Selected | Select Test Target에서 선택한 타겟 이름을 출력합니다. |
| 6 | Save | Script를 저장합니다. |
| 7 | Save As | Script를 다른 이름으로 저장합니다. |
| 8 | Reset | Script를 처음 상태로 되돌립니다. |
| 9 | Script | Script 작성 화면입니다. |
| 10 | Copy | Script 내용을 복사합니다. |
| 11 | Your Recent Script | 최근 실행한 Script 리스트를 출력합니다. 현재 열려있는 Script Type과 동일한 Script만 출력합니다. |
| 12 | Delimiter | Script 결과 출력되는 지표 값 구분자입니다. 쉼표(,) 또는 탭(\t) 등 사용 가능합니다. |
| 13 | Host Encoding Type | Server에서 Script 실행할 인코딩 타입입니다. |
| 14 | Clear All | Script 내용을 초기화합니다. |
2-4. Test Script / Define Stat
작성한 Script를 실행하여 결과값을 확인하고 지표를 정의하는 화면입니다.

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Script Timeout | 설정된 Timeout 값 이상 Script 실행 시, 타임아웃이 발생됩니다. |
| 2 | Run Test | 작성한 Script를 실행합니다. |
| 3 | Test Result | Run Test 결과를 출력합니다. |
| 4 | Define Stat | 수집 지표를 정의합니다. Data ID: Clickhouse DB > xmdatas 테이블에 저장될 data_id 정의 (`cm` Prefix 자동 추가) / Stat Name: 지표 선택 화면에서 출력될 지표 이름 / Description: 지표 설명 / Unit: 지표 단위 |
Define Stat - Data ID 예시:
| 입력값 | 실제 저장값 |
|---|---|
ogu_memory_used | cm_ogu_memory_used |
Run Test Status 종류:
| Status | 의미 | 출력 메시지 |
|---|---|---|
| Finished | 정상적으로 데이터가 수집됨 | - |
| Failed | 스크립트 오류 또는 타겟 연결 실패 | NOT FINISHED |
| Stopped | 사용자가 수동으로 중단 | The operation has stopped. |
| Timeout | 지정된 시간 내에 응답이 없음 | Timeout has occurred. |
2-5. 사용자 지표 등록 단계별 방법

| 단계 | 항목 | 설명 |
|---|---|---|
| Step 1 | 새로운 스크립트 생성 | [New Script] 버튼 클릭 → 각 Script Type에 따른 기본 템플릿 출력 |
| Step 2~3 | Script Type 선택 | SQL 또는 Shell Script 형식 선택 / Oracle, MySQL, PostgreSQL, SQL Server, Linux/Unix 등 타겟 타입 선택 |
| Step 4 | 스크립트를 실행할 타겟 선택 | MySQL 스크립트라면 MySQL 서버를, Linux 명령어라면 해당 OS를 실행 타겟으로 선택 |
| Step 5 | 스크립트 작성 | 스크립트 결과값이 {결과값1}{구분자}{결과값2} 형식으로 출력되도록 작성 (구분자 간 빈 칸이나 다른 문자 없이) |
| Step 6 | Delimiter 작성 | 스크립트 결과값의 구분자를 입력합니다. |
| Step 7 | 스크립트 실행 테스트 | [Run Test] 클릭 → 선택한 Target과 작성한 Script 실행 |
| Step 8~10 | 데이터 정의 (Define Stat) | Data ID, Stat Name, Unit 정의 |

스크립트 작성 예제:
sleep 10
ifstat | grep en | awk '{print $2 "," $3}'
2-6. 사용자 지표 모니터링 방법
Dashboard > Metric 위젯으로 등록하여 사용 가능합니다.
커스텀 지표로 사용 시:
| 순서 | 방법 |
|---|---|
| 1 | '쿼리 정의 지표 사용' 옵션 적용 |
| 2 | 지표 설정 클릭 |
| 3 | 카테고리 하단에 [Custom] Custom Stat_{사용자 지표 타입}에서 지표 선택 |

참조 변수 설정:
| 변수 | 설명 |
|---|---|
| fromTime, toTime | 시간 구간 |
| targetIds | 타겟 |
일반 지표로 사용 시:
| 순서 | 방법 |
|---|---|
| 1 | 지표 설정 클릭 |
| 2 | 카테고리 하단에 [Custom] Custom Stat_{사용자 지표 타입}에서 지표 선택 |
| 3 | 사용자 지표 타입(DB, OS 타입)에 따라 스케줄에서 적용한 타겟 혹은 동일한 플랫폼의 타겟을 선택 |
3. 수집 주기 관리
수집 주기 관리는 크게 2가지로 구분됩니다.
3-1. Metric Collection Cycle Management (지표 수집 주기 관리)
메뉴 경로: Setting > Management > Data > Metric Collection Cycle Management
Categories 영역

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Search | Categories 이름을 검색합니다. |
| 2 | Categories | Categories List입니다. |
Metric Collection List 영역 (카테고리 선택 시 표시)

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Setting Add | 메트릭 수집 설정을 추가합니다. |
| 2 | Delete | 선택한 설정을 삭제합니다. |
| 3 | Search | 컬럼의 데이터를 검색합니다. |
| 4 | Check Box | 목록을 선택합니다. 기본 목록과 대상이 설정된 목록은 삭제할 수 없습니다. |
| 5 | Collection Name | 설정 이름입니다. |
| 6 | Target | 메트릭 수집 설정을 사용하고 있는 대상 정보입니다. |
| 7 | Description | 메트릭 수집 설정에 대한 상세 설명 정보입니다. |
Metric Collection Setting 상세 (Collection Detail Slide)

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Title | Collection 타이틀을 보여줍니다. |
| 4 | Information | 컬렉션 기본 정보 (Metric Collection Setting Name, Description) |
| 5 | Set Targets | 메트릭 수집 설정(컬렉션)을 사용하고 있는 타겟 목록 |
| 6 | Metric Setting | 메트릭 컬렉션에 설정된 메트릭 정보 (Collect Active / Metric / Timeout(sec) / Interval(sec)) |
| 7 | Metric Collection Setting | 메트릭 수집 설정 화면 (Metric Collection Setting Information / Applied to ~ targets / Metric Setting) |
Interval 값 설정 가능 범위:
| 설정 가능 값 |
|---|
| 1초, 3초, 5초, 10초, 15초, 20초, 30초, 1분, 10분, 1시간, 1일 |
Database 플랫폼 지표 수집 주기 설정 방법 (2가지):
| 방법 | 경로 |
|---|---|
| 방법 1 | Setting > Data > Metric Collection Cycle Management에서 데이터베이스 지표 수집 활성화 및 주기 관리 설정 |
| 방법 2 | Setting > Database > Target Instance Add/Edit > Database Metric Collection Setting에서 인스턴스별 지표 수집 활성화 및 주기 관리 설정 |


3-2. Custom Stat Collection Schedule Management (수집 스케줄 관리)
메뉴 경로: Setting > Management > Custom Stat > Collection Schedule Management
Custom Stat에서 등록한 데이터 지표를 수집하기 위한 스케줄을 등록하는 화면입니다.

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Collection Schedule Group | Collection Schedule 그룹 목록을 보여줍니다. |
| 2 | Collect Schedule List | Collection Schedule 목록을 보여줍니다. |
Collection Schedule Group

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Search | Collection Schedule 그룹을 검색합니다. |
| 2 | Add Group | 그룹 추가 팝업창이 열립니다. |
| 3 | Default | 기본 그룹입니다. 수정, 삭제 불가합니다. Collection Schedule 연결된 개수 / 전체 개수를 보여줍니다. |
| 4 | User Group | 사용자가 등록한 목록을 보여줍니다. Edit: 수정 팝업창 / Delete: 삭제 팝업창 |
Add Collection Schedule Group:

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Group Name | 그룹 이름을 입력합니다. 최대 50자까지 입력 가능합니다. 동일한 이름은 중복 설정 불가합니다. |
| 2 | Description | 그룹 설명을 입력합니다. |
Collection Schedule List

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Refresh | Collection Schedule 목록을 새로고침합니다. |
| 2 | Search | 각 칼럼 정보로 Collection Schedule을 검색합니다. |
| 3 | Checkbox | Collection Schedule 목록 선택 시 'Move Group'이 활성화됩니다. |
| 4 | View Mode | All: 모든 Collection Schedule 출력 / View Activated Only: 활성화 상태만 출력 / View Disabled Only: 비활성화 상태만 출력 |
| 5 | Add Schedule | 스케줄 추가 버튼 |
| 6 | Move Group | 그룹 이동 버튼 |
| 7 | Delete | 삭제 버튼 |
| 9 | Collection Schedule List | Collection Schedule Name / Collected Target / Deactivated Target / Collection Interval / Timeout(sec) / Last Collection Time / Collection Log / Last Edit Time / Activation / Description |
Add/Edit Collection Schedule (스케줄 추가/수정)

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Schedule Name | Schedule 이름을 입력합니다. |
| 2 | Description | Schedule 설명을 입력합니다. |
| 3 | Schedule Group | Schedule 그룹을 선택합니다. |
| 4 | Collection Interval | 수집 주기를 선택합니다. |
| 5 | Timeout | 수집 타임아웃을 설정합니다. 해당 시간이 초과할 경우 데이터가 수집되지 않습니다. |
| 6 | Custom Stat | Custom Stat에서 생성한 수집 지표를 선택합니다. Custom Stat에서 생성한 Stat Name이 출력됩니다. |
| 7 | Target | 데이터를 수집할 대상을 선택합니다. (Host 서버 혹은 DB 인스턴스) |
| 8 | Run Test | 데이터 수집 테스트를 수행합니다. 하단 그리드에 수집 결과가 출력됩니다. (Collection Time / Collection Target / Script Execution Result / Message / Metric Validity / Metric Mapping Value) |
| 9 | Activate collection | 데이터 수집 활성화 여부를 설정합니다. |

4. 주요 주의사항
| 항목 | 내용 |
|---|---|
| 데이터 보관 주기 미설정 시 | 데이터가 영구 저장되어 디스크 Full이 발생할 수 있습니다. |
| 보관 주기 변경 후 적용 | 변경 후 적용까지 약 1분 소요되며, 실제 데이터 삭제는 Merge 작업 속도에 따라 시간이 소요됩니다. |
_1, _2 테이블 변경 | 연계 테이블과 함께 일괄 변경이 필요하며, 단독 변경이 불가합니다. |
| 테이블 보관 용량 설정 대상 | 로깅 플랫폼만 설정 가능합니다. |
| Custom Stat Shell Script | 반드시 Host Agent가 설치된 서버에서만 실행됩니다. |
| Custom Stat 수집 데이터 | 숫자(Number)만 가능하며, 문자열은 수집되지 않습니다. |
| Collection Schedule 활성화 | Activate collection을 반드시 활성화해야 실제 데이터가 수집됩니다. |
| 기본 목록 삭제 불가 | 기본 목록 및 대상이 설정된 목록은 삭제 불가합니다. |
| 데이터 수집 미동작 시 | 타임아웃 시간을 늘린 후 데이터 수집을 확인합니다. |
| Windows Custom Stat | Collection Interval은 10초 이상 권장합니다. |
참고 문서:
- 데이터 보관 주기 및 테이블 보관 용량 설정 가이드
- Retention Setting 메뉴얼 (exemONE)
- Retention Setting 메뉴얼 (Maxgauge Mode)
- Custom Stat 생성 및 수집 가이드
- Custom Stat 메뉴얼 (exemONE)
- Custom Stat 상세 메뉴얼 (Scripts to Create Stat)
- Collection Schedule Management 메뉴얼
- Collection Schedule Group 메뉴얼
- Collection Schedule List 메뉴얼
- Add/Edit Collection Schedule 메뉴얼
- Metric Collection Cycle Management 메뉴얼
- Database 지표 수집 주기 관리 설정 가이드
아이콘을 출력합니다.