fieldformat 명령
fieldformat 명령
fieldformat 명령은 필드를 지정된 표현식의 결과로 설정하고 평가된 필드를 검색 결과에 추가해요. 이 명령은 eval의 별칭이에요. 또한 점(.) 연산자를 사용한 문자열 연결을 지원하여 표현식에 문자열을 추가할 수 있어요.
출처: 문서
본문
구문(Syntax)
fieldformat 명령은 다음과 같은 구문을 가져요.
fieldformat <field>=[(prefix).]<expression>[.(suffix)] ["," <field>=[(prefix).]<expression>[.(suffix)] ]...
매개변수(Parameters)
fieldformat 명령은 다음 매개변수를 지원해요.
| Parameter | Required/Optional | Description |
|---|---|---|
<field> |
Required | 생성하거나 업데이트할 필드의 이름. 필드가 없으면 추가되고, 이미 존재하면 값이 덮어써져요. |
<expression> |
Required | 평가할 표현식. 점(.) 연산자로 연결되는 선택적 접두어 및/또는 접미어 문자열을 포함할 수 있어요. |
prefix |
Optional | 표현식 앞에 배치되는 문자열. 점(.) 연산자로 결합하면 평가 결과의 접두어로 연결돼요. |
suffix |
Optional | 표현식 뒤에 배치되는 문자열. 점(.) 연산자로 결합하면 평가 결과의 접미어로 연결돼요. |
예시 1: 인시던트 분류를 위한 계산 필드 만들기
다음 쿼리는 로그 항목이 중요 인시던트인지 나타내는 is_critical 필드를 만들어요. 대시보드에서 필터링할 때 유용해요.
source=otellogs
| where severityText IN ('ERROR', 'WARN')
| fieldformat is_critical = IF(severityNumber >= 21, 'CRITICAL', 'ERROR')
| sort severityNumber, `resource.attributes.service.name`
| fields severityText, `resource.attributes.service.name`, is_critical
| head 4
이 쿼리는 다음과 같은 결과를 반환해요.
| severityText | resource.attributes.service.name | is_critical |
|---|---|---|
| WARN | frontend-proxy | ERROR |
| WARN | frontend-proxy | ERROR |
| WARN | product-catalog | ERROR |
| WARN | product-catalog | ERROR |
예시 2: 서식화된 값으로 필드 덮어쓰기
다음 쿼리는 severityNumber 필드를 사람이 읽을 수 있는 심각도 등급으로 덮어써요.
source=otellogs
| dedup severityText
| sort severityNumber
| fieldformat severityNumber = CASE(severityNumber < 9, 'low', severityNumber < 17, 'medium', severityNumber >= 17, 'high')
| fields severityText, severityNumber
이 쿼리는 다음과 같은 결과를 반환해요.
| severityText | severityNumber |
|---|---|
| DEBUG | low |
| INFO | medium |
| WARN | medium |
| ERROR | high |