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

使用 CloudWatch 构建控制面板

您可以使用 Amazon CloudWatch(它将生成有关您的使用情况和性能的指标)监控应用程序使用资源的方式。CloudWatch 从您的 Amazon 资源和您在 Amazon 上运行的应用程序收集原始数据,并将其处理为可读的近实时指标。这些指标保留 15 个月,以便您可以访问历史信息,从而更好地了解应用程序的执行情况。有关更多信息,请参阅 Amazon CloudWatch 用户指南

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

创建 CloudWatch 控制面板
  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

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

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

  4. 请选择创建控制面板

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

指标与维度

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

这些指标可帮助您发现应用程序的容量要求。您可以使用此信息静态设置容量或设置 Auto Scaling。如果您的应用程序的工作负载不稳定,则表明您应该考虑使用 Auto Scaling。创建目标跟踪扩展策略时,Application Auto Scaling 会提供预定义的指标来简化扩展策略的创建过程。有关这些指标的详细描述,请参阅下表中相关指标的文档。

指标名称 命名空间 维度 相关预定义的指标
AppStream
AvailableCapacity AWS/AppStream 队列 不适用
CapacityUtilization AWS/AppStream 队列 AppStreamAverageCapacityUtilization
Aurora
CPU 利用率 AWS/RDS DBClusterIdentifier、Role (READER) RDSReaderAverageCPUUtilization
DatabaseConnections AWS/RDS DBClusterIdentifier、Role (READER) RDSReaderAverageDatabaseConnections
Comprehend
InferenceUtilization AWS/Comprehend EndpointArn ComprehendInferenceUtilization
DynamoDB
已配置读取容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDBReadCapacityUtilization
已配置写入容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDBWriteCapacityUtilization
已使用读取容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDBReadCapacityUtilization
已使用写入容量单位 AWS/DynamoDB TableName、GlobalSecondaryIndexName DynamoDBWriteCapacityUtilization
ECS
CPU 利用率 AWS/ECS ClusterName、ServiceName ECSServiceAverageCPUUtilization
MemoryUtilization AWS/ECS ClusterName、ServiceName ECSServiceAverageMemoryUtilization
RequestCountPerTarget AWS/ApplicationELB TargetGroup ALBRequestCountPerTarget
ElastiCache
EngineCPUUtilization AWS/ElastiCache ReplicationGroupId,角色(主要) ElastiCachePrimaryEngineCPUUtilization
EngineCPUUtilization AWS/ElastiCache ReplicationGroupId,角色(副本) ElastiCacheReplicaEngineCPUUtilization
EMR
YARNMemoryAvailablePercentage AWS/ElasticMapReduce ClusterId 不适用
Amazon Keyspaces
已配置读取容量单位 AWS/Cassandra Keyspace,TableName CassandraReadCapacityUtilization
已配置写入容量单位 AWS/Cassandra Keyspace,TableName CassandraWriteCapacityUtilization
已使用读取容量单位 AWS/Cassandra Keyspace,TableName CassandraReadCapacityUtilization
已使用写入容量单位 AWS/Cassandra Keyspace,TableName CassandraWriteCapacityUtilization
Lambda
ProvisionedConcurrencyUtilization AWS/Lambda FunctionName、Resource LambdaProvisionedConcurrencyUtilization
Amazon MSK
KafkaDataLogsDiskUsed AWS/Kafka 集群名称 KafkaBrokerStorageUtilization
KafkaDataLogsDiskUsed AWS/Kafka 集群名称,代理 ID KafkaBrokerStorageUtilization
Neptune
CPU 利用率 AWS/Neptune DBClusterIdentifier、Role (READER) NeptuneReaderAverageCPUUtilization
SageMaker
InvocationsPerInstance AWS/SageMaker EndpointName、VariantName SageMakerVariantInvocationsPerInstance
竞价型实例集
CPU 利用率 AWS/EC2Spot FleetRequestId EC2SpotFleetRequestAverageCPUUtilization
NetworkIn AWS/EC2Spot FleetRequestId EC2SpotFleetRequestAverageNetworkIn
网络输出 AWS/EC2Spot FleetRequestId EC2SpotFleetRequestAverageNetworkOut
RequestCountPerTarget AWS/ApplicationELB TargetGroup ALBRequestCountPerTarget

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

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

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

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