View a markdown version of this page

Classic 지표에서 OTel 지표로 마이그레이션 - Amazon CloudWatch

Classic 지표에서 OTel 지표로 마이그레이션

현재 PutMetricData 또는 EMF를 통해 사용자 지정 지표를 게시하는 고객은 OTel 경로로 점진적으로 마이그레이션할 수 있습니다. 플래그 데이는 없습니다. 마이그레이션은 원하는 속도로 워크로드별로 발생합니다.

마이그레이션 접근 방식

마이그레이션은 다음의 4단계를 따릅니다.

  1. 이중 쓰기 - Classic 및 OTel 경로를 통해 동시에 지표를 게시합니다.

  2. 검증 - PromQL을 통해 OTel 지표가 Query Studio에 나타나는지 확인합니다.

  3. 소비자 다시 생성 - PromQL 및 OTel 지표 이름을 사용하도록 경보와 대시보드를 업데이트합니다.

  4. 전환 - OTel 소비자를 검증한 후 Classic 게시를 중지합니다.

1단계: OTel SDK로 계측(이중 쓰기)

기존 PutMetricData 호출과 함께 OTel SDK를 추가합니다. 두 경로 모두 동시에 게시할 수 있으므로 데이터가 손실되지 않습니다.

# Existing Classic publishing (keep running during migration) cloudwatch.put_metric_data( Namespace='MyApp', MetricData=[{'MetricName': 'RequestLatency', 'Value': 42.5, 'Unit': 'Milliseconds'}] ) # New OTel publishing (add this) from opentelemetry import metrics meter = metrics.get_meter("my-app") histogram = meter.create_histogram("http_request_duration_seconds") histogram.record(0.0425, {"method": "GET", "path": "/api/users"})

2단계: Query Studio에서 확인

OTel 지표가 도착하는지 확인하려면 CloudWatch 콘솔을 열고 Query Studio로 이동합니다. 지표를 검색합니다.

http_request_duration_seconds

예상한 레이블과 함께 데이터가 표시되는지 확인합니다.

3단계: OTel 지표에 대한 경보 다시 생성

PromQL 표현식을 사용하여 OTel 지표를 쿼리하는 새 경보를 생성합니다. 다음 예제에서는 Classic 경보와 이에 상응하는 OTel을 보여줍니다.

Classic 경보:

aws cloudwatch put-metric-alarm \ --alarm-name "high-latency" \ --namespace "MyApp" \ --metric-name "RequestLatency" \ --statistic Average --threshold 100 ...

이에 상응하는 OTel(PromQL 경보):

aws cloudwatch put-metric-alarm \ --alarm-name "high-latency-otel" \ --metrics '[{"Id":"q1","Expression":"avg(http_request_duration_seconds{path=\"/api/users\"}) * 1000","Period":300,"ReturnData":true}]' \ --threshold 100 ...

OTel 버전이 올바르게 실행된다고 확신할 때까지 두 경보를 동시에 실행합니다.

4단계: Classic 게시 중지

OTel 경보 및 대시보드를 검증한 후 애플리케이션 코드에서 PutMetricData 호출을 제거합니다. Classic 지표는 요금 발생을 즉시 중지합니다.

지표 이름 매핑

다음 표에는 일반적인 Classic 지표 이름과 이에 상응하는 권장 OTel이 나와 있습니다.

Classic 이름 제안된 OTel 이름 참고

RequestLatency(ms)

http_request_duration_seconds

초로 변환(OTel 규칙)

RequestCount

http_requests_total

카운터에 _total 접미사 사용

ErrorCount

http_server_errors_total

_total 접미사 사용

QueueDepth

queue_depth

게이지 - 접미사 필요 없음

AWS 발급 지표는 어떻게 되나요?

AWS 발급 지표(Amazon EC2 CPU, Amazon RDS 연결 등)는 수동으로 마이그레이션할 필요가 없습니다. OTel 발급 지표 보강을 활성화하여 PromQL을 통해 자동으로 쿼리할 수 있도록 합니다. 자세한 내용은 OpenTelemetry 형식의 AWS 발급 지표 섹션을 참조하세요.