Monitor usage of scalable resources using CloudWatch - Application Auto Scaling

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.

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.