本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon CloudWatch 警示是在部署防護機制中使用製作中期間的先決條件。只有在設定可監控端點的 CloudWatch 警示時,才能在部署防護機制中使用自動還原功能。如果您的任何警示在指定的監控期間觸發,SageMaker AI 會啟動完整復原至舊端點,以保護應用程式。如果您沒有設定任何 CloudWatch 警示來監控端點,則自動還原功能在部署期間無法運作。
如需進一步了解 Amazon CloudWatch,請參閱 Amazon CloudWatch 使用者指南中的什麼是 Amazon CloudWatch?。
注意
確保您的 IAM 執行角色具有對您指定的自動還原警示執行 cloudwatch:DescribeAlarms
動作的許可。
警示範例
為了協助您開始使用,我們提供下列範例示範 CloudWatch 警示的功能。除了使用或修改下列範例之外,您還可以建立自己的警示,並設定警示,以在特定期間內監控指定機群上的各種指標。若要查看更多可新增至警示的 SageMaker AI 指標和維度,請參閱 使用 Amazon CloudWatch 監控 Amazon SageMaker AI 的指標 Amazon 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 警示範例會監控部署期間新機群的模型延遲。您可以使用此警示僅監控新機群並排除舊的機群。警示會在整個部署過程中持續執行。此範例提供全面的端對端監控新機群,並在新機群發生任何回應時間問題時,啟動回復至舊機群。
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
,以指定舊機群組態的名稱。