本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Classic 遷移至 OTel 指標
目前透過 PutMetricData 或 EMF 發佈自訂指標的客戶可以逐步遷移至 OTel 路徑。沒有標記日 — 遷移會依照工作負載按照您自己的步調發生工作負載。
遷移方法
遷移遵循四個階段:
-
雙寫入 — 同時透過 Classic 和 OTel 路徑發佈指標。
-
驗證 - 透過 PromQL 確認 OTel 指標出現在 Query Studio 中。
-
重新建立取用者 — 更新警示和儀表板以使用 PromQL 和 OTel 指標名稱。
-
切換 — 驗證 OTel 取用者後停止 Classic 發佈。
步驟 1:使用 OTel SDK 檢測 (雙寫入)
將 OTel 開發套件與現有的 PutMetricData 呼叫一起新增。這兩個路徑可以同時發佈 - 您不會遺失資料。
# 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 對等項目。
傳統警示:
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:停止傳統發佈
驗證 OTel 警示和儀表板之後,請從應用程式程式碼中移除 PutMetricData 呼叫。傳統指標會立即停止產生費用。
指標名稱映射
下表顯示常見的 Classic 指標名稱及其建議的 OTel 對等項目。
| 傳統名稱 | 建議的 OTel 名稱 | 備註 |
|---|---|---|
RequestLatency (毫秒) |
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 Vended Metric Enrichment,讓它們可以透過 PromQL 自動查詢。如需詳細資訊,請參閱AWS 以 OpenTelemetry 格式提供的指標。