1. CloudWatch 검색 표현식이란?
CloudWatch 검색 표현식은 AWS 서비스의 지표(metrics)를 쉽고 효과적으로 찾고 시각화하기 위한 강력한 쿼리 언어입니다. 복잡한 필터링이나 여러 지표를 한 번에 검색할 때 특히 유용합니다.
2. 검색 표현식의 기본 구조
2.1 기본 문법
검색 표현식의 기본 형식은 다음과 같습니다:
SEARCH(' {Namespace, DimensionName1, DimensionName2, ...} SearchTerm', 'Statistic')
각 구성 요소를 자세히 살펴보겠습니다:
- SEARCH: 검색을 시작하는 키워드입니다.
중괄호 {...}
: 검색할 지표의 범위를 지정합니다.- Namespace: AWS 서비스나 사용자 정의 네임스페이스
- DimensionName: 지표를 구분하는 차원들
- SearchTerm: 실제 검색할 용어나 조건
- Statistic: 데이터를 어떻게 집계할지 지정 (Average, Sum 등)
2.2 실제 예시
SEARCH('{AWS/EC2,InstanceId} MetricName="CPUUtilization"', 'Average')
이 예시는:
- AWS/EC2 네임스페이스에서
- InstanceId 차원을 가진
- CPUUtilization이라는 지표를 검색하여
- Average(평균) 통계값을 보여줍니다
팁
처음 사용할 때는 이미 알고 있는 지표로 시작하여 검색 표현식에 익숙해지는 것이 좋습니다.
3. 토큰화 - 검색의 기본 원리
3.1 토큰화란?
토큰화는 검색 시스템이 문자열을 작은 단위(토큰)로 나누는 과정입니다. CloudWatch는 이 토큰들을 사용해 검색을 수행합니다.
3.2 토큰화 규칙
CloudWatch는 다음과 같은 규칙으로 문자열을 토큰으로 나눕니다:
- 대문자 구분: 낙타 표기법의 대문자를 기준으로 나눔
- 숫자 구분: 숫자는 새로운 토큰의 시작
- 특수문자 구분: 영숫자가 아닌 문자는 구분자로 사용
3.3 토큰화 예시 상세 설명
원래 문자열 | 생성된 토큰 | 설명 |
---|---|---|
CustomCount1 | customcount1, custom, count, 1 | - 'Custom'과 'Count'는 대문자로 시작해 분리 - '1'은 숫자라서 별도 토큰 |
SDBFailure | sdbfailure, sdb, failure | - 'SDB'와 'Failure'는 대문자로 구분 - 모든 토큰은 소문자로 변환 |
Project2-trial333 | project2trial333, project, 2, trial, 333 | - 하이픈(-)은 구분자로 사용 - 숫자들(2, 333)은 별도 토큰 |
정보
토큰화를 이해하면 검색어를 더 효과적으로 작성할 수 있습니다. 예를 들어, "CPUUtilization"을 검색할 때 "cpu" 또는 "util"로도 찾을 수 있습니다.
4. 검색 일치 방식 상세 설명
4.1 부분 일치 검색
부분 일치는 가장 기본적인 검색 방식입니다.
특징:
- 대소문자를 구분하지 않음
- 토큰의 일부만 일치해도 검색됨
- 여러 토큰이 연속된 복합 토큰 검색 가능
예시:
# 다음 검색어들은 모두 'CustomCount1' 지표를 찾을 수 있습니다
SEARCH(' count ', 'Average')
SEARCH(' Count ', 'Average')
SEARCH(' COUNT ', 'Average')
경고
'couNT'는 'cou'와 'NT'로 토큰화되어 'CustomCount1'을 찾지 못합니다!
4.2 정확한 일치 검색
정확한 값을 찾을 때는 큰따옴표를 사용합니다.