본문으로 건너뛰기

메트릭스

홈 > 프로젝트 선택 > 알림 아이콘 경고 알림 > 이벤트 설정 > 메트릭스

프로젝트에 설정된 모든 메트릭스 기반 이벤트 목록을 확인할 수 있습니다. 사용자가 설정한 메트릭스 이벤트를 확인, 수정, 삭제하거나, 새로운 이벤트를 추가할 수 있습니다.

기본 옵션

  • 이벤트 레벨: 이벤트의 심각도를 의미하며 정상(Info), 경고(Warning), 위험(Critical) 세 단계로 구분

  • 에이전트 중복 알림: 설정한 시간(30초, 1분, 3분, 5분, 10분)에 같은 이름의 에이전트가 동시에 2개 이상 동작하는 경우, 선택한 시간 동안 이벤트 발생 안함

  • 검색: 이벤트 이름을 기준으로 검색

  • JSON 다운로드/업로드: 이벤트 규칙은 JSON 편집기를 통해 바로 수정하거나, 파일로 다운로드하여 수정 후 다시 업로드 가능

  • + 이벤트 추가: 새로운 메트릭스 이벤트 추가

  • 컬럼 크기 조정: 각 컬럼의 경계를 드래그하여 너비 조정 가능

표 | 메트릭스 이벤트 목록 구성
항목설명
No.이벤트의 순번
토글 비활성화 아이콘이벤트의 활성화 여부
– 활성화: 조건을 충족하면 이벤트 발생
– 비활성화: 이벤트가 동작하지 않으며, 조건을 검사하지 않음
수정 아이콘이벤트 설정 편집 및 삭제
이벤트 이름사용자가 지정한 이벤트명
– 최대 255자까지 입력 가능
규칙이벤트 발생 조건
대상이벤트가 적용되는 모니터링 대상
발생 횟수이벤트 발생 기준이 되는 기간과 횟수
– 선택한 시간 동안 설정한 횟수만큼 조건을 충족하면 이벤트 발생
일시 중지이벤트 알림 발생 후, 같은 이벤트 발생을 일정 시간 동안 멈춤
– 선택 가능 시간: 사용 안 함, 5분, 10분, 15분, 20분, 30분, 1시간, 2시간, 3시간, 6시간, 12시간, 1일
– 해소된 알림이 활성화된 경우, 정상(RECOVERED) 상태 알림을 받은 후 선택한 시간 동안 같은 이벤트가 발생해도 알림이 발생하지 않음
해소된 알림CriticalWarning 레벨의 이벤트가 해소되면 RECOVERED(정상) 상태의 알림 수신 여부
– 활성화: 진행 중 → 정상 상태로 전환되면 RECOVERED 알림을 보내고, 이벤트 기록에서 진행 중/해소 상태를 구분해 볼 수 있음
– 비활성화: 임곗값을 초과할 때마다 단발성 이벤트 발생
이벤트 수신해당 이벤트 알림을 받을 사용자 또는 그룹(수신 태그)

이벤트 설정

메트릭스 이벤트는 모니터링 대상에서 발생하는 이벤트를 조건에 따라 정의하고, 효율적으로 알림을 받을 수 있도록 설정할 수 있는 기능을 제공합니다.

이벤트 추가

메트릭스 이벤트를 추가하려면 이벤트 설정 > 메트릭스 탭으로 이동한 후, 오른쪽 상단의 [ + 이벤트 추가 ] 버튼을 클릭하세요.

메트릭스 이벤트 추가 방법
Step 1. 템플릿 선택: 이벤트의 기본 구조를 선택합니다.
Step 2. 이벤트 조건 정의: 이벤트를 어떤 기준으로 발생시킬지 조건을 설정합니다.
Step 3. 이벤트 대상 선택: 이벤트가 발생하는 모니터링 대상을 선택합니다.
Step 4. 기본 정보 및 수신 설정: 이벤트 이름 및 메시지, 수신 대상을 설정합니다.

템플릿 선택

  1. 이벤트를 어떻게 구성할지에 따라 화면 왼쪽의 3가지 템플릿 중 하나를 선택하세요.

    • 새로 만들기: 카테고리와 지표를 처음부터 자유롭게 구성할 수 있으며, 복잡한 조건이나 세밀한 모니터링 규칙이 필요한 고급 사용자에게 적합

    • 빠른 설정: 사전 정의된 카테고리, 지표, 기본 임계치가 제공되며, 임곗값만 조정하여 빠르게 적용할 수 있어 초급 사용자에게 적합

    • 고급 설정: 사전 정의된 카테고리와 지표를 기반으로 조건을 추가하거나 자유롭게 변경

노트

메트릭스 이벤트에서는 다양한 설정 방식을 지원합니다. 모니터링 플랫폼에 따라 제공하는 템플릿은 다를 수 있습니다.

이벤트 조건 정의

이벤트 조건 정의 단계에서 이벤트가 언제 발생할지 결정하는 지표 설정, 발생 횟수, 일시 중지, 해소된 알림, 이벤트 동작 시간을 설정합니다.

지표 설정
  1. 검색창에서 카테고리를 입력하거나, 카테고리 목록에서 카테고리(지표)를 선택하세요.
    카테고리를 선택해야 이후 지표 설정을 진행할 수 있습니다.

    • 카테고리 목록은 카테고리 이름, 데이터 수집 주기, 키를 확인할 수 있습니다. 최근 3시간 동안 프로젝트에서 수집된 메트릭스 데이터가 표시됩니다.
  2. 목록에 없는 지표를 사용하려면 직접 입력하기를 선택하여 카테고리를 직접 입력하세요.

    노트

    카테고리와 지표를 모르는 경우 메트릭스 검색기를 활용하세요.

    처음 지표를 설정하는 경우 메트릭스 검색기를 활용하면 더 빠르게 지표를 찾을 수 있습니다.

    • 메트릭스 검색기에서 원하는 지표를 검색하면 관련 카테고리와 상세 정보를 확인할 수 있습니다.

    • 검색 결과에서 필요한 메트릭스의 [ 선택 ] 버튼을 클릭하면, 선택한 값이 이벤트 설정 화면에 자동 반영됩니다.

  3. 이벤트 레벨(Critical, Warning, Info)을 선택하세요. 하나의 지표에 여러 레벨을 설정할 수 있습니다.

    노트

    이벤트 레벨 동작

    여러 조건을 만족하더라도 가장 높은 우선 순위(CriticalWarningInfo)의 레벨만 이벤트가 발생합니다. 레벨 동작 방식은 레벨 동작 가이드를 참고하세요.

    • 이벤트 레벨 수준은 위험(Critical)과 경고(Warning), 정상(Info)으로 구분합니다.

    • 같은 지표로 레벨을 설정하고 단계별 임계치를 설정하는 것을 권장합니다.

  4. 선택한 이벤트 레벨의 필드, 연산자, 값을 입력하세요.

    a. + 추가를 클릭해 조건을 추가할 수 있습니다.

    • &&: 모든 조건을 동시에 만족해야 이벤트 발생
    • ||: 하나 이상의 조건만 만족하면 이벤트 발생

    b. 를 클릭하면 해당 조건이 삭제됩니다.

    노트

    조건식 작성 방법과 지원되는 연산자는 조건 설정 가이드를 참고하세요.

발생 횟수

조건이 몇 번 충족되었을 때 이벤트를 발생시킬지 설정합니다. 지속적인 문제만 감지하고 싶을 때 유용합니다.

  1. 발생 빈도를 선택하세요.

    • 연속: 설정한 횟수만큼 이벤트가 연속으로 발생하는 경우 이벤트 발생

    • 최근: 선택한 시간 내에 설정한 횟수만큼 이벤트가 발생하는 경우 이벤트 발생

      • 선택 가능 시간: 5초, 10초, 15초, 30초, 1분, 2분, 3분, 4분, 5분, 10분, 30분, 1시간
  2. 발생 횟수를 입력하세요.

    • Interval 값은 선택한 카테고리의 데이터 수집 간격입니다. (Interval: 10s)
일시 중지

과도한 이벤트 발생을 방지하기 위해, 이벤트 동작을 일시 중지할 시간을 선택하세요. 이벤트 발생 후 설정한 시간 동안 동일한 이벤트가 발생하지 않습니다.

  • 선택 가능 시간: 사용 안 함, 5분, 10분, 15분, 20분, 30분, 1시간, 2시간, 3시간, 6시간, 12시간, 1일
노트

해소된 알림 활성화 시

알림은 정상 상태 알림(RECOVERED)을 받은 시점을 기준으로 설정한 시간이 지나기 전까지 동일한 이벤트가 발생해도 알림이 발생하지 않습니다.

해소된 알림

해소된 알림 기능을 활성화하면, 이벤트 발생 이후 상태 변화(진행 중 → 해소됨)를 추적할 수 있습니다. 이벤트 기록 메뉴에서 진행 중인 이벤트로 표시됩니다.

  • 해소된 알림은 CriticalWarning 레벨에만 적용되며, Info 레벨은 항상 단발성 이벤트로 동작합니다.

  • CriticalWarning 레벨의 이벤트가 해소되면, 정상(RECOVERED) 상태의 알림이 전송됩니다.

  • 토글 버튼을 클릭해 활성화 또는 비활성화하세요.

    • 토글 활성화 아이콘 활성화: 이벤트는 상태 기반으로 동작하며, 임계치 초과 시 진행 중, 임계치 이하로 복구 시 해소 상태로 전환됨

    • 토글 비활성화 아이콘 비활성화: 임곗값을 초과할 때마다 단발성 이벤트 발생

이벤트 동작 시간

이벤트가 특정 시간대(근무/비근무/점검 시간 등)에 동작하도록 태그를 설정하세요. 태그를 설정하지 않으면 이벤트가 활성화된 상태에서 24시간 상시 동작합니다.

  1. + 추가를 클릭하세요.

  2. 이벤트 동작 시간에서 +새로운 태그 생성을 클릭하세요.

  3. 이벤트 동작 시간 태그 생성에서 태그 이름, 요일, 시간, 색상을 선택하고 [ 적용 ] 버튼을 클릭하세요.

  4. 생성한 태그는 태그 목록에서 확인할 수 있으며, 체크 박스를 선택하면 적용됩니다.

  5. 수정 또는 삭제할 태그의 수정 아이콘 아이콘을 클릭해 이벤트 동작 시간 태그 수정에서 태그를 수정하거나 태그 삭제할 수 있습니다.

주의

태그 삭제 시 해당 태그가 적용된 모든 사용자의 태그가 삭제됩니다. 단, 이벤트 규칙에서 사용 중인 태그는 삭제할 수 없습니다.

시뮬레이션

시뮬레이션 기능은 설정한 이벤트 조건을 과거 데이터에 기반으로 사전 테스트 할 수 있습니다. 예상 이벤트 수가 지나치게 많거나 부족하다면 조건을 조정해 최적의 임곗값을 찾을 수 있습니다.

  • 규칙 검증: 새로운 이벤트 규칙을 만들었을 때, 과거 데이터에 적용하면 어떤 결과가 나오는지 확인 가능

  • 임곗값 튜닝: 이벤트가 자주 발생하거나 전혀 발생하지 않을 때 적절한 수준으로 임곗값 조정


시뮬레이션 시작하기

  1. 이벤트 조건 설정이 완료되면 [ 시뮬레이션 ] 버튼을 클릭하세요.

  2. 예상 이벤트 건수와 시각화된 결과를 확인합니다.


시뮬레이션 결과 이해하기

  1. 시계열 데이터

    지표의 시간대별 변화와 각 레벨의 임계선이 그래프로 표시되어 이벤트 발생 시점을 직관적으로 확인할 수 있습니다.

  2. 레벨별 발생 현황

    화면 우측에 Critical, Warning, Info 레벨의 이벤트 발생 횟수가 표시됩니다. 전체 이벤트 분포와 빈도를 파악할 수 있습니다.

  3. 대상별 상세 정보

    차트의 특정 지점에 마우스를 올리면 해당 시점의 정확한 지표 값과 모니터링 대상이 표시됩니다. 여러 대상이 있는 경우 색상으로 구분되며, 대상별 패턴이 다른 경우 필터링 기능을 사용해 개별적으로 분석할 수 있습니다.

  4. 피크 구간 식별

    그래프에서 지표가 급격히 상승하는 시간을 확인하여 문제가 자주 발생하는 시간대나 패턴을 파악할 수 있습니다.

시뮬레이션 활용 팁

  • 다양한 시간대 시뮬레이션

    평일/주말, 피크/비피크 시간대를 각각 시뮬레이션하여 시간대별 최적 임곗값을 설정하세요.

  • 실제 장애 기간 포함

    과거 장애가 발생했던 기간을 포함하여 시뮬레이션을 실행하면 현재 규칙이 장애를 정확히 감지하는지 확인하세요.

  • 대상 필터링 추가

    모니터링 대상이 많으면 시뮬레이션 결과가 복잡해집니다. 필터링 기능으로 특정 대상만 선택하여 명확한 결과를 확인할 수 있습니다.

  • 임곗값 단계적 조정

    임곗값을 한 번에 크게 변경하기보다 10% 단위로 점진적으로 조정하면서 최적값을 탐색하는 것이 좋습니다.

이벤트 대상 선택

이벤트 대상을 지정하지 않으면, 프로젝트에 포함된 전체 대상으로 이벤트가 발생되어 많은 이벤트가 발생할 수 있습니다. 따라서 이벤트가 적용될 대상을 명확히 설정하는 것을 권장합니다.

노트

이벤트 대상을 변경한 경우, 이벤트 건수가 달라질 수 있습니다. 시뮬레이션 버튼을 클릭한 후, 다시 실행해 예상 이벤트 수를 확인하세요.

대상 선택

이벤트가 적용될 대상을 선택 입력 또는 직접 입력 방식으로 지정할 수 있습니다.

  1. 태그, 연산자, 값을 선택 또는 입력하세요. a. 태그를 찾기 어렵다면, 메트릭스 검색기에서 태그를 검색할 수 있습니다.

  2. + 추가를 클릭해 조건(&&||)으로 이벤트 대상을 추가하세요.

기본 정보 및 수신 설정

이벤트의 이름, 메시지, 수신 대상을 설정합니다. 설정한 내용은 이벤트 기록과 실제 알림 메시지에 그대로 표시되므로, 식별하기 쉽고 명확하게 작성하는 것이 중요합니다.

이벤트 활성화

설정한 조건을 충족했을 때 이벤트 발생 여부를 설정합니다.

  • 토글 활성화 아이콘 활성화: 설정한 조건을 충족하면 이벤트가 발생됨

  • 토글 비활성화 아이콘 비활성화: 조건을 검사하지 않음

이벤트 이름

이벤트 제목으로 사용될 이벤트 이름을 입력하세요. 설정한 이벤트 이름은 이벤트 목록이벤트 기록 메뉴에 표시되며, 해당 이름으로 검색할 수 있습니다.

메시지

이벤트 메시지를 입력하세요. 입력한 메시지는 이벤트 기록 및 알림에 사용됩니다. 시간 아이콘을 클릭하면 이전에 작성한 메시지 기록을 확인할 수 있습니다. 메시지에 변수를 사용하여 이벤트 발생 시점의 실제 값을 포함할 수 있습니다.

  • 변수 사용 규칙

    • 변수 형식: ${지표명}
    • 설정한 카테고리와 동일한 카테고리 내 지표만 변수로 사용할 수 있습니다.
    • 여러 변수를 조합해 상세한 메시지를 구성할 수 있습니다.
    • 사용 가능한 변수 목록은 메트릭스 조회 메뉴에서 확인할 수 있습니다.
  • 변수 활용 예시

    이벤트 설정이벤트 발생 시
    제목Disk 사용량 증가Disk 사용량 증가
    메시지Disk = ${disk}%Disk = 89.9%
이벤트 수신

이벤트 알림을 받을 멤버를 지정합니다.

프로젝트에서 이벤트 수신 설정이 활성화된 모든 대상(멤버, 채널)에게 알림을 전송합니다.

이벤트 수정/삭제

  1. 경고 알림 > 이벤트 설정의 메트릭스 탭으로 이동하세요.

  2. 이벤트 목록에서 수정 또는 삭제하려는 이벤트의 수정 아이콘 아이콘을 클릭하세요.

  3. 이벤트 규칙 수정 창에서 옵션을 수정하고, [ 저장 ] 버튼을 클릭하세요.

    a. 선택한 이벤트를 삭제하려면 이벤트 규칙 수정 창의 오른쪽 위의 [ 삭제 ] 버튼을 클릭하세요.

이벤트 공유

메트릭스 이벤트 설정을 JSON 파일로 저장해 다른 사용자와 설정을 공유하거나 다른 사용자의 설정을 가져올 수 있습니다.

  • JSON 파일명: event-rules-YYYYMMDD.json

내보내기

  1. 화면 오른쪽 위에 [ JSON 내보내기 아이콘 ] 버튼을 클릭하세요.
  2. JSON 편집 창이 나타나면 [ 내보내기 아이콘 내보내기 ] 버튼을 클릭하세요.
    • 이벤트를 검색 후 내보내기 기능을 이용하면 검색한 목록만 JSON 파일로 다운받을 수 있습니다.
  3. JSON 파일이 다운로드되면 공유할 다른 사용자에게 전달하세요.

가져오기

  1. 화면 오른쪽 위에 [ 가져오기 아이콘 ] 버튼을 선택하세요.
  2. 내보내기 기능을 통해 다운로드한 JSON 파일을 선택하세요.
  3. JSON 편집 창이 나타나면 [ 목록에 추가하기 ] 또는 [ 덮어쓰기 ] 버튼을 선택하세요.
주의

같은 종류의 제품 간에 이용할 것을 권장합니다. 다른 제품의 프로젝트로부터 이벤트 설정을 가져올 수는 있지만 정상 작동하지 않습니다.

Json 형식으로 수정하기

  1. 화면 오른쪽 위에 [ JSON 내보내기 아이콘 ] 버튼을 클릭하세요.

  2. 편집 창이 나타나면 JSON 형식에 맞춰 내용을 수정하세요.

  3. 수정을 완료하면 화면 아래 [ 저장 ] 버튼을 선택하세요.

노트

수정한 내용이 JSON 형식에 맞지 않으면 화면 아래에 에러 메시지가 표시되며, 저장할 수 없습니다. 표시되는 에러 메시지는 형식에 따라 다를 수 있습니다.

JSON error

JSON 데이터 구조
{
"version": 2,
"eventId": "zcef7s7f27rum1",
"enabled": true,
"stateful": false,
"title": "Active Transaction",
"message": "Active Transaction = ${active_tx_count}",
"category": "app_counter",
"alertLabel": [
"oid"
],
"repeatCount": 1,
"repeatDuration": 0,
"silent": 300000,
"receiver": [],
"timeTag": [],
"selectString": "",
"conditions": [
{
"level": 20,
"enabled": true,
"rule": "active_tx_count > 100"
}
],
"createTime": 1763632674345,
"lastModifiedTime": 1763632674347,
"lastModifiedUser": "support@whatap.io",
"basic": true,
"metaId": "java004",
"selectCondition": {
"oid": [
"-1010758404",
"-250906941"
]
}
}
표 | JSON 데이터 구조
JSON 필드타입설명비고
versionInteger이벤트 규칙의 버전변경 제한
eventIdString이벤트 규칙의 고유 식별자
enabledboolean이벤트 활성화 여부
statefulboolean상태 기반 이벤트 여부
titleString사용자가 설정한 이벤트 규칙 이름
messageString사용자가 설정한 이벤트 규칙 메시지
categoryString데이터 카테고리
alertLabelList<String>이벤트의 상태 관리를 위해 카테고리마다 지정되는 기본 식별자(primary key) 값변경 제한
repeatCountInteger반복 횟수
repeatDurationLong반복 기간
silentInteger일시 중지 시간
receiverList<String>수신자 태그의 키값 목록
timeTagList<String>동작시간 태그의 키값 목록
selectStringString대상 선택
conditionsList<Object>레벨별 발생 조건 목록
ㄴ levelbyte레벨 값Critical: 30 Warning: 20 Info: 10
ㄴ enabledboolean레벨 활성화 여부
ㄴ ruleString레벨 발생 조건
createTimeLong이벤트 규칙 최초 생성 시간
lastModifiedTimeLong이벤트 규칙 마지막 수정 시간
lastModifiedUserString이벤트 규칙 마지막 수정 계정
basicboolean빠른 설정으로 생성한 이벤트 여부변경 제한
metaIdString빠른 설정 템플릿 고유 식별자변경 제한: 이 값은 빠른 설정으로 생성한 이벤트에만 존재합니다. (basic=true)
selectConditionObject빠른 설정 대상 선택값이 값은 빠른 설정으로 생성한 이벤트에만 존재합니다. (basic=true)
주의

‘변경 제한’으로 표시된 필드는 이벤트 동작에 영향을 줄 수 있으므로 값을 변경하지 않는 것을 권장합니다.


참고

발생 조건, 대상 선택 가이드

메트릭스 경고 알림의 이벤트 발생 조건과 이벤트 대상 선택은 동일한 문법을 사용합니다. 단, 이벤트 발생 조건은 필드(Field)의 Key를 변수로 사용하고, 이벤트 대상 선택은 태그(Tag)의 Key를 변수로 사용합니다.

레벨 동작 가이드

이벤트 레벨은 위험(Critical)과 경고(Warning), 정상(Info)으로 구분합니다.

  1. 우선순위 기반 이벤트 발생

    여러 레벨의 조건을 동시에 충족할 경우, 가장 높은 우선순위의 이벤트만 발생합니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    현재 상태: CPU 95%
    → 결과: Critical 이벤트만 발생 (Warning은 억제됨)
  2. 레벨 상승

    진행중 상태를 갖는 이벤트에서 낮은 레벨 이벤트가 진행 중일 때 높은 레벨 조건을 충족하면, 두 레벨 모두 진행 중 상태가 됩니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    시나리오:
    1) CPU 80% → Warning 발생 (진행 중)
    2) CPU 95% → Warning (진행 중), Critical (진행 중)
  3. 레벨 하강

    진행중 상태를 갖는 이벤트에서 높은 레벨에서 낮은 레벨로 전환되면 높은 레벨은 해소되고 낮은 레벨이 유지됩니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    시나리오:
    1) CPU 97% → Critical 발생
    2) CPU 85% → Critical 해소, Warning 유지
    3) CPU 65% → Warning 해소
  4. 동작 흐름도

    - Warning: CPU > 70%
    - Critical: CPU > 90%

    메트릭 값: 60% → 75% → 92% → 85% → 60%
    상태: 정상 Warning Critical Warning 정상
    (발생) (발생) (유지) (해소)
    Warning
    (유지)
노트

진행 중 상태를 갖는 이벤트는 조건이 충족되는 동안 계속 활성화 상태를 유지하며, 조건이 해제될 때까지 지속됩니다.

조건 설정 가이드

주의

지표명이 숫자로 시작하거나 특수문자가 포함된 경우 ${지표명} 형태로 작성해야 합니다.

  • 괄호 ( ), [ ]
  • 연산자 +, -, *, /, %
  • 구분자 :, @, #, ,,(공백)
  • 기타 특수문자 !, ^, &, |, ~, ```, =

${}사용 예시:

${cpu(xos)} > 50
${mem[0]} >= 100
${cpu-usage} > 80
${namespace:cpu} > 70
${metric name} > 60
${4xx_error} > 10

${} 없이 사용 가능: 영문자, 언더스코어(_), 점(.)만 포함된 경우

cpu > 80
cpu_usage > 50
CPUUtilization.Average > 0.8
  1. 비교 연산자

    숫자 비교
        크다:           cpu > 80
    크거나 같다: cpu >= 80
    작다: memory < 1000
    작거나 같다: memory <= 1000
    같다: status == 200
    같지 않다: error != 0
    문자열 비교
        status == 'OK'
    region == "us-east-1"
  2. 산술 연산자

    • 기본 산술 연산

      덧셈:    cpu + 10 >= 90
      뺄셈: memory - 100 >= 500
      곱셈: cpu * 2 >= 100
      나눗셈: disk / 1024 >= 100
      나머지: value % 10 == 0
    • 괄호를 이용한 우선순위 제어

      (cpu + memory) * 2 >= 200
      (disk - used) / total >= 0.2
      ((cpu + memory) / 2) >= 50
    • 음수 표현

      cpu > -100
  3. 논리 연산자

    • AND 연산 (&&)

      cpu > 80 && memory > 1000
      ${cpu(xos)} > 50 && ${mem(xos)} > 60
    • OR 연산 (||)

      cpu > 90 || memory > 90
      disk < 10 || network > 1000
    • 복합 논리 연산

      (cpu > 50 && memory > 50) || disk < 20
      cpu > 80 && (memory > 1000 || disk > 500)
  4. 패턴 매칭 연산자

    • LIKE 연산자

      oname like 'prod-*'
      url like '*error*'
      message like 'WARN%'
    • NOT LIKE 연산자

      oname not like 'test-*'
      url not like '*debug*'
  5. 내장 함수

    • Null 체크 함수

      isNull(value)             # null인지 확인
      isNotNull(value) # null이 아닌지 확인
      nvl(value, 0) # null이면 기본값 반환
      isEmpty(str) # 빈 문자열인지 확인
      isNotEmpty(str) # 빈 문자열이 아닌지 확인
    • 집계 함수

      sum(cpu, memory, disk)              # 합계
      avg(cpu, memory) # 평균
      max(cpu, memory, disk) # 최대값
      min(cpu, memory, disk) # 최소값
      count(value1, value2, value3) # 개수
    • 수학 함수

      round(cpu, 2)             # 반올림 (소수점 2자리)
    • 문자열 함수

      length(str)                # 문자열 길이
      startsWith(str, 'prefix') # 접두사 확인
      endsWith(str, 'suffix') # 접미사 확인
      indexOf(str, 'search') # 문자열 위치
      substring(str, 0, 10) # 부분 문자열
      trim(str) # 공백 제거
      replace(str, 'old', 'new') # 문자열 치환
      hasStr(str, 'search') # 문자열 포함 여부
    • 조건 함수

      • if: 조건식이 참(true)이면 true값을 반환하고, 거짓(false)이면 false값을 반환하는 조건 함수
      형식
      if(조건, true값, false값)
      예시
      if(value >= 90, 'High', 'Medium') == 'High'
      • decode: 값과 조건을 비교하여 일치하는 조건의 결과를 반환, 없으면 기본값 반환
      형식
      decode(값, 조건1, 결과1, 조건2, 결과2, ..., 조건N, 결과N, 기본값)
      예시
      decode(value, 1, 'Low', 2, 'Medium', 3, 'High', 'Unknown') == 'Unknown'
      • in: 값이 지정한 후보값 중 하나와 일치하면 true, 아니면 false
      형식
      in(값, 후보값1, 후보값2, ..., 후보값N)
      예시
      in(status, 200, 201, 204) == false
    주의

    작성 시 주의사항

    • 권장사항

      • 간단한 변수명은 ${} 없이 사용 (예: cpu, memory)
      • 특수문자 포함 시 반드시 ${} 사용
      • 복잡한 연산은 괄호로 명확하게 구분
      • 함수명은 정확히 입력 (대소문자 구분)
    • 피해야 할 사항

      • 불완전한 표현식 작성 (예: cpu >, memory &&)
      • 괄호 미스매칭 (예: (cpu > 80 && cpu > 70))
      • 연속된 연산자 사용 (예: cpu >> 80, cpu >< 80)