自動回復組態與監控 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自動回復組態與監控

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" }

在上述範例中,請注意下列欄位的值:

  • AlarmNameAlarmDescription 中,輸入選擇用於警示的名稱和描述。

  • 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,以指定舊機群組態的名稱。