

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

# 自動回復組態與監控
<a name="deployment-guardrails-configuration"></a>

Amazon CloudWatch 警示是在部署防護機制中使用製作中期間的先決條件。只有在設定可監控端點的 CloudWatch 警示時，才能在部署防護機制中使用自動還原功能。如果有任何警示在指定的監控期間觸發，SageMaker AI 會啟動完整復原至舊端點，以保護您的應用程式。如果您沒有設定任何 CloudWatch 警示來監控端點，則自動還原功能在部署期間無法運作。

如需進一步了解 Amazon CloudWatch，請參閱 *Amazon CloudWatch 使用者指南*中的[什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

**注意**  
確保您的 IAM 執行角色具有對您指定的自動還原警示執行 `cloudwatch:DescribeAlarms` 動作的許可。

## 警示範例
<a name="deployment-guardrails-configuration-alarm-examples"></a>

為了協助您開始使用，我們提供下列範例示範 CloudWatch 警示的功能。除了使用或修改下列範例之外，您還可以建立自己的警示，並設定警示，以在特定期間內監控指定機群上的各種指標。要查看更多可新增到警報的 SageMaker AI 指標和維度，請參閱[Amazon CloudWatch 中的 Amazon SageMaker AI 指標](monitoring-cloudwatch.md)。

**Topics**
+ [監控新舊機群的調用錯誤](#deployment-guardrails-configuration-alarm-examples-errors-both)
+ [監控新機群上的模型延遲](#deployment-guardrails-configuration-alarm-examples-latency-new)

### 監控新舊機群的調用錯誤
<a name="deployment-guardrails-configuration-alarm-examples-errors-both"></a>

下列 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`。此值會告知警示在決定警示狀態時，考慮兩個最近的評估期間。

### 監控新機群上的模型延遲
<a name="deployment-guardrails-configuration-alarm-examples-latency-new"></a>

下列 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`，以指定舊機群組態的名稱。