使用 CloudWatch 构建控制面板
您可以使用 Amazon CloudWatch(它将生成有关您的使用情况和性能的指标)监控应用程序使用资源的方式。CloudWatch 从您的 Amazon 资源和您在 Amazon 上运行的应用程序收集原始数据,并将其处理为可读的近实时指标。这些指标保留 15 个月,以便您可以访问历史信息,从而更好地了解应用程序的执行情况。有关更多信息,请参阅 Amazon CloudWatch 用户指南。
CloudWatch 控制面板是 CloudWatch 控制台中的可自定义主页,可用于在单个视图中监控资源,即便是分布到不同区域的资源,也能对其进行监控。您可以使用 CloudWatch 控制面板创建 Amazon 资源的所选指标的自定义视图。您可以在每个图表上选择用于每个指标的颜色,以便更轻松地跨多个图表跟踪同一指标。
创建 CloudWatch 控制面板
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,选择控制面板,然后选择创建新的控制面板。
-
输入控制面板的名称,例如要查看其 CloudWatch 数据的服务的名称。
-
请选择创建控制面板。
-
选择要添加到控制面板的小部件类型,例如折线图。然后选择配置,并选择要添加到控制面板的指标。有关更多信息,请参阅 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 控制面板上手动绘制指标。