

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自动回滚配置和监控
<a name="deployment-guardrails-configuration"></a>

Amazon CloudWatch 警报是在部署护栏中使用烘焙周期的先决条件。只有在设置了可以监控端点的 CloudWatch 警报后，才能在部署护栏中使用自动回滚功能。如果您的任何警报在指定的监控期内跳动， SageMaker AI 会启动对旧端点的完全回滚以保护您的应用程序。如果您没有设置任何 CloudWatch 警报来监控您的终端节点，则自动回滚功能在部署期间将不起作用。

要了解有关亚马逊的更多信息 CloudWatch，请参阅[什么是亚马逊 CloudWatch？](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) 在《*亚马逊 CloudWatch 用户指南》*中。

**注意**  
确保您的 IAM 执行角色有权对您指定的自动回滚警报执行 `cloudwatch:DescribeAlarms` 操作。

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

为了帮助您入门，我们提供了以下示例来演示 CloudWatch 警报的功能。除了使用或修改以下示例之外，您还可以创建自己的警报以及配置警报，以便监控特定时段内指定实例集上的各种指标。要查看可以添加到警报中的更多 SageMaker AI 指标和维度，请参阅[亚马逊中的亚马逊 A SageMaker I 指标 CloudWatch](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 警报示例监控部署期间新队列的模型延迟。您可以使用此警报仅监控新实例集并排除旧实例集。警报在整个部署期间保持。此示例为您提供了对新队列的全面 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` 以指定旧实例集配置的名称。