addtotals 명령

addtotals 명령

addtotals 명령은 숫자 필드의 합을 계산하고 열 합계(요약 행)와 행 합계(새 필드)를 모두 만들 수 있어요. 이 명령은 소계(subtotal)나 총합계(grand total)가 있는 요약 보고서를 만드는 데 유용해요. 이 명령은 숫자 필드(정수, 부동 소수점, 더블)만 처리하며, 비숫자 필드는 필드 목록에 명시적으로 지정되더라도 무시돼요.

출처: 문서

본문

구문(Syntax)

addtotals 명령은 다음과 같은 구문을 가져요.

addtotals [field-list] [label=<string>] [labelfield=<field>] [row=<boolean>] [col=<boolean>] [fieldname=<field>]

매개변수(Parameters)

addtotals 명령은 다음 매개변수를 지원해요.

Parameter Required/Optional Description
<field-list> Optional 더할 숫자 필드의 쉼표로 구분된 목록. 기본적으로 모든 숫자 필드가 더해져요.
row Optional 각 행의 합계를 계산하고 행 합계를 저장할 새 필드를 추가해요. 기본값은 true예요.
col Optional 각 열의 합계를 계산하고 열 합계와 함께 끝에 요약 이벤트를 추가해요. 기본값은 false예요.
labelfield Optional 레이블이 배치되는 필드. 필드가 없으면 생성되고 새 필드의 요약 행(마지막 행)에 레이블이 표시돼요. col=true일 때 적용돼요.
label Optional 계산된 합계를 식별하기 위해 요약 행(마지막 행)에 나타나는 텍스트. labelfield와 함께 사용하면 이 텍스트가 요약 행의 지정된 필드에 배치돼요. 기본값은 Total이에요. col=true일 때 적용돼요. labelfield와 fieldname 매개변수가 같은 필드 이름을 지정하면 이 매개변수는 효과가 없어요.
fieldname Optional 행 합계를 저장하는 필드. row=true일 때 적용돼요.

예시 1: 열 합계 추가하기

다음 쿼리는 서비스별 오류 및 경고 수를 센 다음 총합계를 보여주는 열 합계 행을 추가해요.

source=otellogs
| where severityText IN ('ERROR', 'WARN')
| eval error_count = IF(severityText = 'ERROR', 1, 0), warn_count = IF(severityText = 'WARN', 1, 0)
| stats sum(error_count) as errors, sum(warn_count) as warnings by `resource.attributes.service.name`
| sort `resource.attributes.service.name`
| fields `resource.attributes.service.name`, errors, warnings
| addtotals col=true labelfield='resource.attributes.service.name' label='Total'

이 쿼리는 다음과 같은 결과를 반환해요.

resource.attributes.service.name errors warnings Total
checkout 2 0 2
frontend-proxy 1 2 3
payment 2 0 2
product-catalog 1 2 3
recommendation 1 0 1
Total 7 4 null

예시 2: 행 합계 추가하기

다음 쿼리는 서비스별 오류 및 경고 수를 별도로 센 다음, 서비스별 조치 가능한 이슈의 결합 개수를 보여주는 행 합계를 추가해요.

source=otellogs
| where severityText IN ('ERROR', 'WARN')
| eval error_count = IF(severityText = 'ERROR', 1, 0), warn_count = IF(severityText = 'WARN', 1, 0)
| stats sum(error_count) as errors, sum(warn_count) as warnings by `resource.attributes.service.name`
| sort `resource.attributes.service.name`
| fields `resource.attributes.service.name`, errors, warnings
| addtotals row=true fieldname='total_issues'

이 쿼리는 다음과 같은 결과를 반환해요.

resource.attributes.service.name errors warnings total_issues
checkout 2 0 2
frontend-proxy 1 2 3
payment 2 0 2
product-catalog 1 2 3
recommendation 1 0 1

예시 3: 모든 옵션 사용하기

다음 쿼리는 모든 옵션이 설정된 addtotals 명령을 사용해 행 합계와 열 합계를 단일 보고서에 결합해요.

source=otellogs
| where severityText IN ('ERROR', 'WARN')
| eval error_count = IF(severityText = 'ERROR', 1, 0), warn_count = IF(severityText = 'WARN', 1, 0)
| stats sum(error_count) as errors, sum(warn_count) as warnings by `resource.attributes.service.name`
| sort `resource.attributes.service.name`
| fields `resource.attributes.service.name`, errors, warnings
| addtotals errors, warnings row=true col=true fieldname='Row Total' label='Sum' labelfield='Column Total'

이 쿼리는 다음과 같은 결과를 반환해요.

resource.attributes.service.name errors warnings Row Total Column Total
checkout 2 0 2 null
frontend-proxy 1 2 3 null
payment 2 0 2 null
product-catalog 1 2 3 null
recommendation 1 0 1 null
null 7 4 null Sum

더 알아보기 (Learn more)