本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自動回復組態與監控
Amazon CloudWatch 警示是在部署護欄中使用烘烤期間的先決條件。如果您設定可以監視端點的 CloudWatch 警示,則只能在部署防護中使用自動復原功能。如果有任何警示在指定的監控期間發生故障,請 SageMaker 啟動完整復原至舊端點以保護您的應用程式。如果您沒有設定任何 CloudWatch 警示來監控端點,則自動回復功能在部署期間無法運作。
要進一步了解 Amazon CloudWatch,請參閱什麼是 Amazon CloudWatch? 在 Amazon 用 CloudWatch 戶指南。
注意
確保您的 IAM 執行角色具有對您指定的自動還原警示執行 cloudwatch:DescribeAlarms
動作的許可。
警示範例
為了協助您開始使用,我們提供下列範例來示範 CloudWatch 警示的功能。除了使用或修改下列範例之外,您還可以建立自己的警示,並設定警示,以在特定期間內監控指定機群上的各種指標。若要查看更多可新增至鬧鐘的 SageMaker 量度和維度,請參閱 SageMaker 使用 Amazon 監控 Amazon 的指標 CloudWatch。
監控新舊機群的叫用錯誤
下列 CloudWatch 警示會監控端點的平均錯誤率。您可以將此警示與任何部署防護機制流量轉移類型搭配使用,以提供新舊機群的整體監控。如果警示跳轉,則 SageMaker 會啟動回復至舊叢集。
來自舊機群和新機群的叫用錯誤會造成平均錯誤率。如果平均錯誤率超過指定閾值,則會觸發警示。這個特定範例會在部署期間監控新舊機群上的 4xx 錯誤 (用戶端錯誤)。您也可以使用指標Invocation5XXErrors
,監控 5xx 錯誤 (伺服器錯誤)。
注意
針對此警示類型,如果您的舊叢集在部署期間發送警示,則 SageMaker會終止您的部署。因此,如果您目前的生產機群已經造成錯誤,請考慮使用或修改下列其中一個範例,這些範例只會監控新機群是否存在錯誤。
#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
,以指定舊機群組態的名稱。