Monitor usage of scalable resources using CloudWatch
With Amazon CloudWatch, you get nearly continuous visibility into your applications across scalable resources. CloudWatch is a monitoring service for AWS resources. You can use CloudWatch to collect and track metrics, set alarms, and automatically react to changes in your AWS resources. You can also create dashboards to monitor the specific metrics or sets of metrics you need.
When you interact with the services that integrate with Application Auto Scaling, they send the metrics shown in the following table to CloudWatch. In CloudWatch, metrics are grouped first by the service namespace, and then by the various dimension combinations within each namespace. These metrics can help you monitor resource usage and plan capacity for your applications. If your application's workload is not constant, this indicates that you should consider using auto scaling. For detailed descriptions of these metrics, see the documentation for the metric of interest.
Contents
CloudWatch metrics for monitoring resource usage
The following table lists the CloudWatch metrics that are available to support monitoring resource usage. The list is not exhaustive but will give you a good starting point. If you do not see these metrics in the CloudWatch console, make sure that you have completed the set up of the resource. For more information, see the Amazon CloudWatch User Guide.
Scalable resource | Namespace | CloudWatch metric | Link to documentation |
---|---|---|---|
AppStream 2.0 | |||
Fleets |
AWS/AppStream |
Name: AvailableCapacity Dimension: Fleet |
AppStream 2.0 metrics |
Fleets | AWS/AppStream |
Name: CapacityUtilization Dimension: Fleet |
AppStream 2.0 metrics |
Aurora | |||
Replicas | AWS/RDS |
Name: CPUUtilization Dimensions: DBClusterIdentifier, Role (READER) |
Aurora cluster-level metrics |
Replicas | AWS/RDS |
Name: DatabaseConnections Dimensions: DBClusterIdentifier, Role (READER) |
Aurora cluster-level metrics |
Amazon Comprehend | |||
Document classification endpoints | AWS/Comprehend |
Name: InferenceUtilization Dimension: EndpointArn |
Amazon Comprehend endpoint metrics |
Entity recognizer endpoints | AWS/Comprehend |
Name: InferenceUtilization Dimension: EndpointArn |
Amazon Comprehend endpoint metrics |
DynamoDB | |||
Tables and global secondary indexes | AWS/DynamoDB |
Name: ProvisionedReadCapacityUnits Dimensions: TableName, GlobalSecondaryIndexName |
DynamoDB metrics |
Tables and global secondary indexes | AWS/DynamoDB |
Name: ProvisionedWriteCapacityUnits Dimensions: TableName, GlobalSecondaryIndexName |
DynamoDB metrics |
Tables and global secondary indexes | AWS/DynamoDB |
Name: ConsumedReadCapacityUnits Dimensions: TableName, GlobalSecondaryIndexName |
DynamoDB metrics |
Tables and global secondary indexes | AWS/DynamoDB |
Name: ConsumedWriteCapacityUnits Dimensions: TableName, GlobalSecondaryIndexName |
DynamoDB metrics |
Amazon ECS | |||
Services | AWS/ECS |
Name: CPUUtilization Dimensions: ClusterName, ServiceName |
Amazon ECS metrics |
Services | AWS/ECS |
Name: MemoryUtilization Dimensions: ClusterName, ServiceName |
Amazon ECS metrics |
Services | AWS/ApplicationELB |
Name: RequestCountPerTarget Dimension: TargetGroup |
Application Load Balancer metrics |
ElastiCache | |||
Clusters (replication groups) | AWS/ElastiCache |
Name: DatabaseMemoryUsageCountedForEvictPercentage Dimension: ReplicationGroupId |
ElastiCache (Redis OSS) metrics |
Clusters (replication groups) | AWS/ElastiCache |
Name: DatabaseCapacityUsageCountedForEvictPercentage Dimension: ReplicationGroupId |
ElastiCache (Redis OSS) metrics |
Clusters (replication groups) | AWS/ElastiCache |
Name: EngineCPUUtilization Dimensions: ReplicationGroupId, Role (Primary) |
ElastiCache (Redis OSS) metrics |
Clusters (replication groups) | AWS/ElastiCache |
Name: EngineCPUUtilization Dimensions: ReplicationGroupId, Role (Replica) |
ElastiCache (Redis OSS) metrics |
Amazon EMR | |||
Clusters | AWS/ElasticMapReduce |
Name: YARNMemoryAvailablePercentage Dimension: ClusterId |
Amazon EMR metrics |
Amazon Keyspaces | |||
Tables | AWS/Cassandra |
Name: ProvisionedReadCapacityUnits Dimensions: Keyspace, TableName |
Amazon Keyspaces metrics |
Tables | AWS/Cassandra |
Name: ProvisionedWriteCapacityUnits Dimensions: Keyspace, TableName |
Amazon Keyspaces metrics |
Tables | AWS/Cassandra |
Name: ConsumedReadCapacityUnits Dimensions: Keyspace, TableName |
Amazon Keyspaces metrics |
Tables | AWS/Cassandra |
Name: ConsumedWriteCapacityUnits Dimensions: Keyspace, TableName |
Amazon Keyspaces metrics |
Lambda | |||
Provisioned concurrency | AWS/Lambda |
Name: ProvisionedConcurrencyUtilization Dimensions: FunctionName, Resource |
Lambda function metrics |
Amazon MSK | |||
Broker storage | AWS/Kafka |
Name: KafkaDataLogsDiskUsed Dimensions: Cluster Name |
Amazon MSK metrics |
Broker storage | AWS/Kafka |
Name: KafkaDataLogsDiskUsed Dimensions: Cluster Name, Broker ID |
Amazon MSK metrics |
Neptune | |||
Clusters | AWS/Neptune |
Name: CPUUtilization Dimensions: DBClusterIdentifier, Role (READER) |
Neptune metrics |
SageMaker | |||
Endpoint variants | AWS/SageMaker |
Name: InvocationsPerInstance Dimensions: EndpointName, VariantName |
Invocation metrics |
Inference components | AWS/SageMaker |
Name: InvocationsPerCopy Dimensions: InferenceComponentName |
Invocation metrics |
Provisioned concurrency for a serverless endpoint | AWS/SageMaker |
Name: ServerlessProvisionedConcurrencyUtilization Dimensions: EndpointName, VariantName |
Serverless endpoint metrics |
Spot Fleet (Amazon EC2) | |||
Spot Fleets | AWS/EC2Spot |
Name: CPUUtilization Dimension: FleetRequestId |
Spot Fleet metrics |
Spot Fleets | AWS/EC2Spot |
Name: NetworkIn Dimension: FleetRequestId |
Spot Fleet metrics |
Spot Fleets | AWS/EC2Spot |
Name: NetworkOut Dimension: FleetRequestId |
Spot Fleet metrics |
Spot Fleets | AWS/ApplicationELB |
Name: RequestCountPerTarget Dimension: TargetGroup |
Application Load Balancer metrics |
Predefined metrics for target tracking scaling policies
The following table lists the predefined metric types from the Application Auto Scaling API Reference with their corresponding CloudWatch metric name. Each predefined metric represents an aggregation of the values of the underlying CloudWatch metric. The result is the average resource usage over a one-minute period, based on a percentage unless otherwise noted. The predefined metrics are only used within the context of setting up target tracking scaling policies.
You can find more information about these metrics in the service's documentation that's available from the table in CloudWatch metrics for monitoring resource usage.
Predefined metric type | CloudWatch metric name |
---|---|
AppStream 2.0 | |
AppStreamAverageCapacityUtilization |
CapacityUtilization |
Aurora | |
RDSReaderAverageCPUUtilization |
CPUUtilization |
RDSReaderAverageDatabaseConnections |
DatabaseConnections¹ |
Amazon Comprehend | |
ComprehendInferenceUtilization |
InferenceUtilization |
DynamoDB | |
DynamoDBReadCapacityUtilization |
ProvisionedReadCapacityUnits, ConsumedReadCapacityUnits² |
DynamoDBWriteCapacityUtilization |
ProvisionedWriteCapacityUnits, ConsumedWriteCapacityUnits² |
Amazon ECS | |
ECSServiceAverageCPUUtilization |
CPUUtilization |
ECSServiceAverageMemoryUtilization |
MemoryUtilization |
ALBRequestCountPerTarget |
RequestCountPerTarget¹ |
ElastiCache | |
ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage |
DatabaseMemoryUsageCountedForEvictPercentage |
ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage
|
DatabaseCapacityUsageCountedForEvictPercentage |
ElastiCachePrimaryEngineCPUUtilization |
EngineCPUUtilization |
ElastiCacheReplicaEngineCPUUtilization |
EngineCPUUtilization |
Amazon Keyspaces | |
CassandraReadCapacityUtilization |
ProvisionedReadCapacityUnits, ConsumedReadCapacityUnits² |
CassandraWriteCapacityUtilization |
ProvisionedWriteCapacityUnits, ConsumedWriteCapacityUnits² |
Lambda | |
LambdaProvisionedConcurrencyUtilization |
ProvisionedConcurrencyUtilization |
Amazon MSK | |
KafkaBrokerStorageUtilization |
KafkaDataLogsDiskUsed |
Neptune | |
NeptuneReaderAverageCPUUtilization |
CPUUtilization |
SageMaker | |
SageMakerVariantInvocationsPerInstance |
InvocationsPerInstance¹ |
SageMakerInferenceComponentInvocationsPerCopy |
InvocationsPerCopy¹ |
SageMakerVariantProvisionedConcurrencyUtilization |
ServerlessProvisionedConcurrencyUtilization |
SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution |
ConcurrentRequestsPerCopy |
SageMakerVariantConcurrentRequestsPerModelHighResolution |
ConcurrentRequestsPerModel |
Spot Fleet | |
EC2SpotFleetRequestAverageCPUUtilization |
CPUUtilization³ |
EC2SpotFleetRequestAverageNetworkIn³ |
NetworkIn¹ ³ |
EC2SpotFleetRequestAverageNetworkOut³ |
NetworkOut¹ ³ |
ALBRequestCountPerTarget |
RequestCountPerTarget¹ |
¹ Metric is based on a count instead of a percentage.
² For DynamoDB and Amazon Keyspaces, the predefined metrics are an aggregation of two CloudWatch metrics to support scaling based on provisioned throughput consumption.
³ For best scaling performance, Amazon EC2 detailed monitoring should be used.