本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自動回復組態與監控
Amazon CloudWatch 警示是在部署護欄中使用烘焙期間的必要條件。只有在您設定可監控端點的 CloudWatch 警示時,才能在部署護欄中使用自動轉返功能。如果您的任何警示在指定的監控期間觸發, SageMaker AI 會啟動完整復原至舊端點,以保護應用程式。如果您沒有設定任何 CloudWatch 警示來監控端點,則自動復原功能在部署期間將無法運作。
若要進一步了解 Amazon CloudWatch,請參閱《Amazon 使用者指南》中的什麼是 Amazon CloudWatch?。 CloudWatch
注意
請確定您的IAM執行角色具有許可,可對您指定的自動轉返警示執行 cloudwatch:DescribeAlarms
動作。
警示範例
為了協助您開始使用,我們提供下列範例來示範 CloudWatch 警示的功能。除了使用或修改下列範例之外,您還可以建立自己的警示,並設定警示,以在特定期間內監控指定機群上的各種指標。若要查看您可以新增至警示的更多 SageMaker AI 指標和維度,請參閱 使用 Amazon 監控 Amazon SageMaker AI 的指標 CloudWatch。
監控新舊機群的調用錯誤
下列 CloudWatch 警示會監控端點的平均錯誤率。您可以將此警示與任何部署防護機制流量轉移類型搭配使用,以提供新舊機群的整體監控。如果警示跳脫,則 SageMaker AI 會啟動復原至舊機群。
來自舊機群和新機群的調用錯誤會造成平均錯誤率。如果平均錯誤率超過指定閾值,則會觸發警示。這個特定範例會在部署期間監控新舊機群上的 4xx 錯誤 (用戶端錯誤)。您也可以使用指標Invocation5XXErrors
,監控 5xx 錯誤 (伺服器錯誤)。
注意
對於此警示類型,如果您的舊機群在部署期間觸發警示, SageMaker AI 會終止您的部署。因此,如果您目前的生產機群已經造成錯誤,請考慮使用或修改下列其中一個範例,這些範例只會監控新機群是否存在錯誤。
#Applied deployment type: all types { "AlarmName": "EndToEndDeploymentHighErrorRateAlarm", "AlarmDescription": "Monitors the error rate of 4xx errors", "MetricName": "Invocation4XXErrors", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value":
<your-endpoint-name>
}, { "Name": "VariantName", "Value": "AllTraffic" } ], "Period": 600, "EvaluationPeriods": 2, "Threshold": 1, "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }
在上述範例中,請注意下列欄位的值:
在
AlarmName
和AlarmDescription
中,輸入選擇用於警示的名稱和描述。在
MetricName
中,使用此值Invocation4XXErrors
來監控端點是否有 4xx 錯誤在
Namespace
中,使用值AWS/SageMaker
。您也可以指定自己的自訂指標 (如適用)。對於
Statistic
,請使用Average
。這表示在計算錯誤率是否超出閾值時,警示會取得評估期間內的平均錯誤率。對於維度
EndpointName
,使用您要更新的端點名稱作為值。對於維度
VariantName
,使用值AllTraffic
來指定所有端點流量。對於
Period
,請使用600
。這會將警示評估期間設定為 10 分鐘長。對於
EvaluationPeriods
,請使用2
。此值會告知警示在決定警示狀態時,考慮兩個最近的評估期間。
監控新機群上的模型延遲
下列 CloudWatch 警示範例會在部署期間監控新機群的模型延遲。您可以使用此警示僅監控新機群並排除舊的機群。警示會在整個部署過程中持續執行。此範例為您提供全面監控 end-to-end新機群,並在新機群發生任何回應時間問題時,啟動復原至舊機群。
CloudWatch 會在新機群開始接收流量EndpointConfigName:{New-Ep-Config}
後,發佈具有 維度的指標,而且這些指標即使在部署完成後仍持續存在。
您可以針對任何部署類型使用下列警示範例。
#Applied deployment type: all types { "AlarmName": "NewEndpointConfigVersionHighModelLatencyAlarm", "AlarmDescription": "Monitors the model latency on new fleet", "MetricName": "ModelLatency", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value":
<your-endpoint-name>
}, { "Name": "VariantName", "Value": "AllTraffic" }, { "Name": "EndpointConfigName", "Value":<your-config-name>
], "Period": 300, "EvaluationPeriods": 2, "Threshold": 100000, # 100ms "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }
在上述範例中,請注意下列欄位的值:
在
MetricName
中,使用值ModelLatency
來監控模型的回應時間。在
Namespace
中,使用值AWS/SageMaker
。您也可以指定自己的自訂指標 (如適用)。對於維度
EndpointName
,使用您要更新的端點名稱作為值。對於維度
VariantName
,使用值AllTraffic
來指定所有端點流量。對於維度
EndpointConfigName
,值應參考新端點或更新端點的端點組態名稱。
注意
如果您想要監控舊機群而非新機群,您可以變更維度 EndpointConfigName
,以指定舊機群組態的名稱。