본문 바로가기
WIKI 기술 지식 베이스

산술 프로세서 (Arithmetic Processor)

원문 보기 위키 갱신

산술 프로세서를 이용하면 지정한 수식의 결과를 담은 새 속성(새 속성 이름에는 공백이나 특수문자를 넣을 수 없어요)을 로그에 추가할 수 있어요. 서로 다른 단위를 가진 여러 시간 속성을 하나의 속성으로 다시 매핑하거나, 같은 로그 안의 속성들끼리 연산을 수행하는 데 쓰죠.

산술 프로세서의 수식은 괄호와 기본 사칙연산 기호 -, +, *, /를 사용할 수 있어요.

기본적으로 속성이 없으면 해당 계산은 건너뛰어져요. Replace missing attribute by 0을 선택하면 누락된 속성 값을 0으로 자동 채워서 계산이 항상 수행되게 할 수 있어요.

참고:

  • 로그 속성에서 속성을 찾지 못했거나, 숫자로 변환할 수 없으면 해당 속성은 누락(missing)으로 처리돼요.
  • - 연산자를 쓸 때는 주변에 공백을 넣어야 해요. start-time 같은 속성 이름에는 대시(-)가 포함될 수 있기 때문이에요. 예를 들어 다음 수식은 - 연산자 주위에 공백을 반드시 넣어야 해요: (end-time - start-time) / 1000.
  • 대상 속성이 이미 존재하면 수식의 결과로 덮어써져요.
  • 결과는 소수점 9번째 자리에서 반올림돼요. 예를 들어 수식의 결과가 0.1234567891이면 실제로 저장되는 속성 값은 0.123456789예요.
  • 측정 단위를 확장/변환해야 한다면 scale 필터를 사용하세요.

출처: 문서

본문

사용 사례

산술 프로세서는 로그 속성을 사용해 값을 계산할 때 써요. 가장 흔한 사용 사례는 Azure 로그처럼 지속 시간(duration) 속성을 다른 시간 단위로 변환하는 경우인데, Datadog가 기간을 나노초에서 밀리초로 자동 변환해줘요.

로그의 전후 상태

예시: 지속 시간을 나노초에서 밀리초로 변환하기

Before (변환 전):

{
  "operation": "db.query",
  "duration_ns": 25000000,
  "message": "Database query completed"
}

Arithmetic Processor (산술 프로세서)

duration_ns를 밀리초로 변환하는 산술 프로세서를 만들어보세요.

After processing (처리 후):

{
  "operation": "db.query",
  "duration_ns": 25000000,
  "duration_ms": 25,
  "message": "Database query completed"
}

산술 프로세서는 계산을 기반으로 duration_ms 속성을 추가해요.

API

Datadog Log Pipeline API 엔드포인트에 다음 산술 프로세서 JSON 페이로드를 사용하세요:

{
  "type": "arithmetic-processor",
  "name": "<PROCESSOR_NAME>",
  "is_enabled": true,
  "expression": "<ARITHMETIC_OPERATION>",
  "target": "<TARGET_ATTRIBUTE>",
  "is_replace_missing": false
}
Parameter Type Required Description
type String Yes 프로세서 유형이에요.
name String No 프로세서 이름이에요.
is_enabled Boolean No 프로세서 활성화 여부예요. 기본값: false.
expression String Yes 하나 이상의 로그 속성 사이의 산술 연산이에요.
target String Yes 산술 연산 결과를 담는 속성 이름이에요.
is_replace_missing Boolean No true면 expression의 누락 속성을 모두 0으로 바꿔요. false면 속성이 없을 때 연산을 건너뛰어요. 기본값: false.

더 알아보기 (Learn more)

추가로 도움이 되는 문서, 링크, 아티클: