산술 프로세서 (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)
추가로 도움이 되는 문서, 링크, 아티클: