RARE 명령어
RARE 명령어
rare 명령어는 필드 목록에 지정된 모든 필드에서 가장 흔하지 않은(least common) 값의 조합을 식별해요.
출처: 문서
본문
rare 명령어는 필드 목록에 지정된 모든 필드에서 가장 흔하지 않은(least common) 값의 조합을 식별해요.
이 명령어는 그룹화 필드의 각 고유한 값 조합에 대해 최대 10개의 결과를 반환해요.
rare 명령어는 쿼리 도메인 특화 언어(DSL, query domain-specific language)로 다시 작성되지 않아요. 코디네이팅(coordinating) 노드에서만 실행돼요.
구문 (Syntax)
rare 명령어의 구문은 다음과 같아요:
rare [rare-options] <field-list> [by-clause]
매개변수 (Parameters)
rare 명령어는 다음 매개변수를 지원해요.
| 매개변수 | 필수/선택 | 설명 |
|---|---|---|
<field-list> |
필수 | 쉼표로 구분된 필드 이름 목록이에요. |
<by-clause> |
선택 | 결과를 그룹화할 하나 이상의 필드예요. |
rare-options |
선택 | 출력을 제어하는 추가 옵션이에요: - showcount: 각 값 조합의 빈도 수를 포함하는 필드를 출력에 만들지 여부예요. 기본값은 true예요. - countfield: 수를 포함하는 필드의 이름이에요. 기본값은 count예요. - usenull: null 값을 출력할지 여부예요. 기본값은 plugins.ppl.syntax.legacy.preferred의 값이에요. |
예제 1: 수를 표시하지 않고 가장 흔하지 않은 값 찾기
다음 쿼리는 showcount=false를 사용해 빈도 수를 표시하지 않고 가장 흔하지 않은 severity 레벨을 찾아요:
source=otellogs
| rare showcount=false severityText
쿼리는 다음과 같은 결과를 반환해요:
| severityText |
|---|
| DEBUG |
| WARN |
| INFO |
| ERROR |
예제 2: 필드별로 그룹화된 가장 흔하지 않은 값 찾기
다음 쿼리는 서비스별로 그룹화된 가장 흔하지 않은 severity 레벨을 찾아요:
source=otellogs
| rare showcount=false severityText by `resource.attributes.service.name`
쿼리는 다음과 같은 결과를 반환해요:
| resource.attributes.service.name | severityText |
|---|---|
| product-catalog | DEBUG |
| product-catalog | ERROR |
| product-catalog | WARN |
| frontend-proxy | ERROR |
| frontend-proxy | WARN |
| recommendation | ERROR |
| payment | ERROR |
| checkout | INFO |
| checkout | ERROR |
| cart | INFO |
| cart | DEBUG |
| frontend | INFO |
예제 3: 빈도 수와 함께 가장 흔하지 않은 값 찾기
다음 쿼리는 빈도 수와 함께 가장 흔하지 않은 severity 레벨을 찾아요:
source=otellogs
| rare severityText
쿼리는 다음과 같은 결과를 반환해요:
| severityText | count |
|---|---|
| DEBUG | 3 |
| WARN | 4 |
| INFO | 6 |
| ERROR | 7 |
예제 4: count 필드 이름 사용자 지정하기
다음 쿼리는 countfield를 사용해 빈도 수 필드에 사용자 지정 이름을 지정해요:
source=otellogs
| rare countfield='cnt' severityText
쿼리는 다음과 같은 결과를 반환해요:
| severityText | cnt |
|---|---|
| DEBUG | 3 |
| WARN | 4 |
| INFO | 6 |
| ERROR | 7 |
예제 5: null 값 처리 지정하기
다음 쿼리는 usenull=false를 사용해 null 값을 제외해요:
source=otellogs
| rare usenull=false instrumentationScope.name
쿼리는 다음과 같은 결과를 반환해요:
| instrumentationScope.name | count |
|---|---|
| Microsoft.Extensions.Hosting | 1 |
| go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc | 1 |
| @opentelemetry/instrumentation-http | 2 |
다음 쿼리는 usenull=true를 사용해 결과에 null 값을 포함해요:
source=otellogs
| rare usenull=true instrumentationScope.name
쿼리는 다음과 같은 결과를 반환해요:
| instrumentationScope.name | count |
|---|---|
| Microsoft.Extensions.Hosting | 1 |
| go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc | 1 |
| @opentelemetry/instrumentation-http | 2 |
| null | 16 |