使用 CloudWatch 构建控制面板 - Application Auto Scaling
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 CloudWatch 构建控制面板

您可以使用 Amazon CloudWatch 监视应用程序如何使用资源,该工具会生成有关您的使用情况和性能的指标。CloudWatch 从您的 AWS 资源和在 AWS 上运行的应用程序中收集原始数据,并将其处理为可读、接近实时的指标。这些指标保留 15 个月,以便您可以访问历史信息,从而更好地了解应用程序的执行情况。有关更多信息,请参见 Amazon CloudWatch 用户指南

CloudWatch 控制面板是 CloudWatch 控制台中的可自定义主页,可用于在一个视图中监控您的资源,即便是那些分布到不同区域的资源,也能对其进行监控。您可以使用 CloudWatch 控制面板创建 AWS 资源的所选指标的自定义视图。您可以在每个图表上选择用于每个指标的颜色,以便更轻松地跨多个图表跟踪同一指标。

创建 CloudWatch 控制面板

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择控制面板,然后选择创建新的控制面板

  3. 输入控制面板的名称,例如要查看其 CloudWatch 数据的服务的名称。

  4. 选择创建控制面板

  5. 选择要添加到控制面板的小部件类型,例如折线图。然后选择配置,并选择要添加到控制面板的指标。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的从 CloudWatch 控制面板中添加或删除图形

默认情况下,您在 CloudWatch 控制面板中创建的指标为平均值。

指标与维度

当您和与 Application Auto Scaling 集成的服务进行交互时,它们会将下表中显示的指标发送到 CloudWatch。在 CloudWatch 中,指标的分组首先依据服务命名空间,然后依据每个命名空间内的各种维度组合。

这些指标可帮助您发现应用程序的容量要求。您可以使用此信息静态设置容量或设置自动扩展。如果您的应用程序的工作负载不稳定,则表明您应该考虑使用自动扩展。

指标名称 Namespace 维度 适用对象
CPU 利用率 AWS/ECS ClusterName、ServiceName ECS
MemoryUtilization AWS/ECS ClusterName、ServiceName ECS
CPU 利用率 AWS/EC2Spot FleetRequestId Spot 队列
NetworkIn AWS/EC2Spot FleetRequestId Spot 队列
网络输出 AWS/EC2Spot FleetRequestId Spot 队列
RequestCountPerTarget AWS/ApplicationELB TargetGroup ECS、Spot 队列
YARNMemoryAvailablePercentage AWS/ElasticMapReduce ClusterId EMR
AvailableCapacity AWS/AppStream 队列 AppStream
CapacityUtilization AWS/AppStream 队列 AppStream
已配置读取容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDB
已配置写入容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDB
已使用读取容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDB
已使用写入容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDB
CPU 利用率 AWS/RDS DBClusterIdentifier、Role (READER) Aurora
DatabaseConnections AWS/RDS DBClusterIdentifier、Role (READER) Aurora
InvocationsPerInstance AWS/SageMaker EndpointName、VariantName SageMaker
InferenceUtilization AWS/Comprehend EndpointArn Comprehend
ProvisionedConcurrencyUtilization AWS/Lambda FunctionName、Resource Lambda
已配置读取容量单位 AWS/Cassandra Keyspace,TableName Amazon Keyspaces
已配置写入容量单位 AWS/Cassandra Keyspace,TableName Amazon Keyspaces
已使用读取容量单位 AWS/Cassandra Keyspace,TableName Amazon Keyspaces
已使用写入容量单位 AWS/Cassandra Keyspace,TableName Amazon Keyspaces

虽然 CloudWatch 允许您为每个指标选择任何统计数据和周期,但并非所有的组合都有用。例如,CPU 利用率的平均、最小和最大统计数据均有用,但求和统计数据却无用。有关更多信息,请参阅上表提供的链接中的服务文档。

衡量应用程序性能的常用方法是平均 CPU 利用率。如果 CPU 利用率增加,而您没有足够的容量来处理它,则应用程序可能无响应。另一方面,如果在利用率低时您有太多的容量和资源正在运行,这会增加使用该服务的成本。

根据服务的不同,您还拥有跟踪可用预配置吞吐量的指标。例如,对于在具有预配置并发性的函数别名或版本上正在处理的调用数,Lambda 会发出 ProvisionedConcurrencyUtilization 指标。如果您正在启动大型作业并同时多次调用同一函数,则当作业超出可用的预配置并发性时,该作业可能会遇到延迟。另一方面,如果您的预配置并发性比您需要的多,则您的成本可能高于应有的成本。

如果您在 CloudWatch 控制台中未看到这些指标,请确保您已完成资源的设置。在完全设置资源之前,不会显示指标。此外,如果某个指标在过去 14 天内未发布数据,在搜索要添加到 CloudWatch 控制面板上的图表的指标时,将找不到该指标。有关如何手动添加任何指标的信息,请参阅 Amazon CloudWatch 用户指南 中的在 CloudWatch 控制面板上手动绘制标准