Interface CfnScalingPolicy.CustomizedMetricSpecificationProperty

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
CfnScalingPolicy.CustomizedMetricSpecificationProperty.Jsii$Proxy
Enclosing class:
CfnScalingPolicy

@Stability(Stable) public static interface CfnScalingPolicy.CustomizedMetricSpecificationProperty extends software.amazon.jsii.JsiiSerializable
Contains customized metric specification information for a target tracking scaling policy for Application Auto Scaling.

For information about the available metrics for a service, see AWS services that publish CloudWatch metrics in the Amazon CloudWatch User Guide .

To create your customized metric specification:

  • Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom metrics in the Amazon CloudWatch User Guide .
  • Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases.

For an example of how creating new metrics can be useful, see Scaling based on Amazon SQS in the Amazon EC2 Auto Scaling User Guide . This topic mentions Auto Scaling groups, but the same scenario for Amazon SQS can apply to the target tracking scaling policies that you create for a Spot Fleet by using Application Auto Scaling.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts .

CustomizedMetricSpecification is a property of the AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration property type.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.applicationautoscaling.*;
 CustomizedMetricSpecificationProperty customizedMetricSpecificationProperty = CustomizedMetricSpecificationProperty.builder()
         .dimensions(List.of(MetricDimensionProperty.builder()
                 .name("name")
                 .value("value")
                 .build()))
         .metricName("metricName")
         .metrics(List.of(TargetTrackingMetricDataQueryProperty.builder()
                 .expression("expression")
                 .id("id")
                 .label("label")
                 .metricStat(TargetTrackingMetricStatProperty.builder()
                         .metric(TargetTrackingMetricProperty.builder()
                                 .dimensions(List.of(TargetTrackingMetricDimensionProperty.builder()
                                         .name("name")
                                         .value("value")
                                         .build()))
                                 .metricName("metricName")
                                 .namespace("namespace")
                                 .build())
                         .stat("stat")
                         .unit("unit")
                         .build())
                 .returnData(false)
                 .build()))
         .namespace("namespace")
         .statistic("statistic")
         .unit("unit")
         .build();
 

See Also: