View a markdown version of this page

CloudWatch Metrics(OTel) - Amazon CloudWatch

CloudWatch Metrics(OTel)

선택 기준에 따라 처리할 파이프라인에 입력되는 OTel 지표가 결정됩니다. 각 기준은 수신 지표의 특정 속성과 일치하는 <path> == "<value>" 형식의 표현식입니다. 하나 이상의 선택 기준이 필요합니다.

기준은 AND 시맨틱을 사용하여 match_all 블록 내에서 그룹화됩니다. 파이프라인에 들어가려면 지표가 그룹의 모든 표현식과 일치해야 합니다.

지원되는 경로

다음 OTTL 경로는 선택 기준에서 지원됩니다.

경로 설명

resource.attributes["key"]

리소스 수준 속성

instrumentation_scope.name

계측 범위 이름

instrumentation_scope.version

계측 범위 버전

instrumentation_scope.attributes["key"]

계측 범위 속성

metric.name

지표 이름

datapoint.attributes["key"]

데이터 포인트 수준 속성

attributes["key"]

datapoint.attributes["key"]에 대한 짧은 형식

구성

선택 기준은 파이프라인 구성의 source 섹션에 정의되어 있습니다.

pipeline: source: cloudwatch_metrics: format: otlp selection_criteria: - match_all: - 'resource.attributes["service.name"] == "my-service"' - 'metric.name == "http.server.request.duration"' processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "platform-engineering" sink: - cloudwatch_metrics: {}

다음 예제에서는 지원되는 모든 경로 유형을 사용합니다.

pipeline: source: cloudwatch_metrics: format: otlp selection_criteria: - match_all: - 'resource.attributes["service.name"] == "my-service"' - 'instrumentation_scope.name == "my-scope"' - 'instrumentation_scope.version == "1.0.0"' - 'instrumentation_scope.attributes["library"] == "otel-java"' - 'metric.name == "http.server.request.duration"' - 'datapoint.attributes["status_code"] == "200"' - 'attributes["environment"] == "production"' processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "observability" sink: - cloudwatch_metrics: {}

PromQL로 확인

CloudWatch는 @ 접두사 규칙을 사용하여 OTLP 속성 범위를 PromQL 레이블에 매핑합니다. 이 매핑을 사용하여 파이프라인이 Query Studio에서 예상대로 지표를 처리하고 있는지 확인합니다.

파이프라인 OTTL 경로 PromQL 레이블 접두사 예제

resource.attributes["key"]

@resource.

@resource.service.name

instrumentation_scope.name

@instrumentation.@name

@instrumentation.@name

instrumentation_scope.attributes["key"]

@instrumentation.

@instrumentation.library

datapoint.attributes["key"] / attributes["key"]

@datapoint. 또는 베어

status_code

예를 들어 파이프라인이 값이 "platform-engineering"resource.attributes["team"]를 추가하는 경우 해당 사항이 적용되었는지 확인할 수 있습니다.

{"CPUUtilization", "@resource.team"="platform-engineering"}

요구 사항 및 제한 사항

단일 match_all 그룹

각 파이프라인은 selection_criteria에서 정확히 하나의 match_all 그룹을 지원합니다. 단일 파이프라인에서 여러 match_all 그룹을 정의할 수 없습니다.

최소 기준

match_all 그룹에는 표현식이 하나 이상 필요합니다.

최대 기준

match_all 그룹은 최대 20개의 표현식을 포함할 수 있습니다.

AND 시맨틱

지표가 파이프라인에 들어가려면 match_all 그룹의 모든 표현식이 일치해야 합니다.

정확한 문자열 일치

값은 정적 문자열이어야 합니다. 와일드카드, 정규식 및 부분 일치는 지원되지 않습니다. 각 표현식은 == 연산자를 사용해야 합니다.

파이프라인 간에 중복 기준 없음

각 지표 데이터 포인트는 최대 하나의 파이프라인과 일치해야 합니다. 데이터 포인트가 새 파이프라인 기준과 기존 파이프라인 기준 모두에 일치하면 파이프라인 생성이 실패합니다. 중복을 방지하려면 각 파이프라인의 선택 기준에 고유한 값이 있는 속성 경로를 하나 이상 포함하세요.

예를 들어 파이프라인 A는 파이프라인 B가 대상으로 하는 특정 지표를 포함하는 payment-service에서 모든 지표를 선택하기 때문에 다음 두 선택 기준이 겹칩니다.

# Pipeline A — selects ALL metrics from payment-service selection_criteria: - match_all: - 'resource.attributes["service.name"] == "payment-service"' # Pipeline B — FAILS: a datapoint with service.name="payment-service" # and metric.name="http.server.request.duration" matches both pipelines selection_criteria: - match_all: - 'metric.name == "http.server.request.duration"'