监控部署以实现自动回滚
在部署过程中,可以结合使用 Amazon AppConfig deployment strategies 和基于 Amazon CloudWatch 警报的自动回滚,来缓解配置数据格式错误或不正确导致应用程序出现错误的情况。完成配置后,如果一个或多个 CloudWatch 警报在部署期间进入 ALARM
状态,则 Amazon AppConfig 会自动将配置数据回滚到先前版本,从而防止应用程序中断或出错。还可以在部署仍在进行时,通过调用 StopDeployment API 操作来回滚配置。
重要
对于成功完成的部署,Amazon AppConfig 还支持通过在 StopDeployment API 操作中使用 AllowRevert
参数,来将配置数据还原到先前版本。对于某些客户来说,成功部署后还原到先前配置可以保证数据与部署前相同。还原操作还会忽略警报监视器,这可能会阻止在应用程序紧急情况下前滚。有关更多信息,请参阅 还原配置。
要配置自动回滚,请在创建(或编辑)Amazon AppConfig 环境时,在 CloudWatch 警报字段中指定一个或多个 CloudWatch 指标的 Amazon 资源名称(ARN)。有关更多信息,请参阅 在 Amazon AppConfig 中为应用程序创建环境。
用于监控自动回滚的建议指标
您选择进行监控的指标将取决于应用程序使用的硬件和软件。Amazon AppConfig 客户经常监控以下指标。有关按 Amazon Web Services 服务分组的建议指标的完整列表,请参阅《Amazon CloudWatch 用户指南》中的建议的警报。
确定要监控的指标后,使用 CloudWatch 来配置警报。有关更多信息,请参阅使用 Amazon CloudWatch 告警。
服务 | 指标 | 详细信息 |
---|---|---|
4XXError |
此警报检测较高的客户端错误率。这可能表明授权或客户端请求参数存在问题。这也可能意味着资源已被删除,或者客户端正在请求一个不存在的资源。请考虑启用 Amazon CloudWatch Logs,并检查是否存在任何可能导致 4XX 错误的错误。此外,可以考虑启用详细的 CloudWatch 指标,以便按资源和方法查看此指标,并缩小错误来源的范围。超出配置的节流限制也可能导致错误。 |
|
5XXError |
此警报有助于检测较高的客户端错误率。这可能表明 API 后端、网络或 API 网关与后端 API 之间的集成存在问题。 |
|
延迟 |
此警报检测阶段中的高延迟。确定 |
|
GroupInServiceCapacity |
此警报有助于检测组中的容量何时低于工作负载所需的理想容量。要排查问题,请检查您的扩展活动是否存在启动失败,并确认所需的容量配置是否正确。 |
|
CPUUtilization |
此警报有助于监控 EC2 实例的 CPU 利用率。根据应用程序的不同,持续的高利用率级别可能是正常的。但是,如果性能下降,并且应用程序不受磁盘 I/O、内存或网络资源的限制,则达到极限的 CPU 可能表示存在资源瓶颈或应用程序性能问题。 |
|
CPUReservation |
此警报有助于检测 ECS 集群的高 CPU 预留。高 CPU 预留可能表示集群将耗尽为任务注册的 CPU。 |
|
HTTPCode_Target_5XX_Count |
此警报有助于检测 ECS 服务的服务器端高错误计数。这可能表示存在导致服务器无法处理请求的错误。 |
|
node_cpu_utilization |
此警报有助于检测 Amazon EKS 集群的 Worker 节点中的高 CPU 利用率。如果利用率一直很高,则可能表明需要将 Worker 节点替换为具有更高 CPU 的实例,或者需要横向扩展系统。 |
|
node_memory_utilization |
此警报有助于检测 Amazon EKS 集群的 Worker 节点中的高内存利用率。如果利用率一直很高,则可能表明需要扩展容器组(pod)副本的数量或优化您的应用程序。 |
|
pod_cpu_utilization_over_pod_limit |
此警报有助于检测 Amazon EKS 集群的容器组(pod)中的高 CPU 利用率。如果利用率一直很高,则可能表明需要增加受影响容器组(pod)的 CPU 限制。 |
|
pod_memory_utilization_over_pod_limit |
此警报有助于检测 Amazon EKS 集群的容器组(pod)中的高 CPU 利用率。如果利用率一直很高,则可能表明需要增加受影响容器组(pod)的 CPU 限制。 |
|
错误 |
此警报检测高错误计数。错误包括代码引发的异常和 Lambda 运行时系统引发的异常。 |
|
节流 |
此警报检测大量受限调用请求。限制在无并发可用于纵向扩展时发生。 |
|
memory_utilization |
此警报用于检测 Lambda 函数的内存利用率是否接近配置的限制。 |
|
4xxErrors |
此警报有助于我们报告为响应客户端请求而发出的 4xx 错误状态代码的总数。例如,403 错误代码可能表示 IAM 策略不正确,404 错误代码可能表示客户端应用程序操作不当。 |
|
5xxErrors |
此警报有助于检测高客户端错误数。此类错误表明客户端发出了服务器无法完成的请求。这可以帮助您弄清楚您的应用程序因为 S3 而面临的问题。 |