Classic 지표에서 OTel 지표로 마이그레이션
현재 PutMetricData 또는 EMF를 통해 사용자 지정 지표를 게시하는 고객은 OTel 경로로 점진적으로 마이그레이션할 수 있습니다. 플래그 데이는 없습니다. 마이그레이션은 원하는 속도로 워크로드별로 발생합니다.
마이그레이션 접근 방식
마이그레이션은 다음의 4단계를 따릅니다.
-
이중 쓰기 - Classic 및 OTel 경로를 통해 동시에 지표를 게시합니다.
-
검증 - PromQL을 통해 OTel 지표가 Query Studio에 나타나는지 확인합니다.
-
소비자 다시 생성 - PromQL 및 OTel 지표 이름을 사용하도록 경보와 대시보드를 업데이트합니다.
-
전환 - 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 |
카운터에 |
ErrorCount |
http_server_errors_total |
|
QueueDepth |
queue_depth |
게이지 - 접미사 필요 없음 |
AWS 발급 지표는 어떻게 되나요?
AWS 발급 지표(Amazon EC2 CPU, Amazon RDS 연결 등)는 수동으로 마이그레이션할 필요가 없습니다. OTel 발급 지표 보강을 활성화하여 PromQL을 통해 자동으로 쿼리할 수 있도록 합니다. 자세한 내용은 OpenTelemetry 형식의 AWS 발급 지표 섹션을 참조하세요.