Skip to content

ScalingRuleProps

Properties for defining a ScalingRule.

See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ess-scalingrule

Initializer

import ros_cdk_ess
ros_cdk_ess.ScalingRuleProps(
  scaling_group_id: typing.Union[str, IResolvable],
  adjustment_type: typing.Union[str, IResolvable] = None,
  adjustment_value: typing.Union[typing.Union[int, float], IResolvable] = None,
  cooldown: typing.Union[typing.Union[int, float], IResolvable] = None,
  disable_scale_in: typing.Union[bool, IResolvable] = None,
  estimated_instance_warmup: typing.Union[typing.Union[int, float], IResolvable] = None,
  initial_max_size: typing.Union[typing.Union[int, float], IResolvable] = None,
  metric_name: typing.Union[str, IResolvable] = None,
  min_adjustment_magnitude: typing.Union[typing.Union[int, float], IResolvable] = None,
  predictive_scaling_mode: typing.Union[str, IResolvable] = None,
  predictive_task_buffer_time: typing.Union[typing.Union[int, float], IResolvable] = None,
  predictive_value_behavior: typing.Union[str, IResolvable] = None,
  predictive_value_buffer: typing.Union[typing.Union[int, float], IResolvable] = None,
  scale_in_evaluation_count: typing.Union[typing.Union[int, float], IResolvable] = None,
  scale_out_evaluation_count: typing.Union[typing.Union[int, float], IResolvable] = None,
  scaling_rule_name: typing.Union[str, IResolvable] = None,
  scaling_rule_type: typing.Union[str, IResolvable] = None,
  step_adjustment: typing.Union[IResolvable, typing.List[typing.Union[IResolvable, StepAdjustmentProperty]]] = None,
  target_value: typing.Union[typing.Union[int, float], IResolvable] = None
)

Properties

Name Type Description
scaling_group_id typing.Union[str, ros_cdk_core.IResolvable] Property scalingGroupId: ID of the scaling group of a scaling rule.
adjustment_type typing.Union[str, ros_cdk_core.IResolvable] Property adjustmentType: The adjustment method of the scaling rule.
adjustment_value typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property adjustmentValue: The number of instances that must be scaled based on the scaling rule.
cooldown typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property cooldown: The cooldown period of the scaling rule.
disable_scale_in typing.Union[bool, ros_cdk_core.IResolvable] Property disableScaleIn: Specifies whether to disable scale-in.
estimated_instance_warmup typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property estimatedInstanceWarmup: The warm-up period of the ECS instances.
initial_max_size typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property initialMaxSize: The maximum number of ECS instances in the scaling group, which is used together with PredictiveValueBehavior.
metric_name typing.Union[str, ros_cdk_core.IResolvable] Property metricName: The predefined metric to monitor.
min_adjustment_magnitude typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property minAdjustmentMagnitude: The minimum number of ECS instances to be adjusted in a scaling rule.
predictive_scaling_mode typing.Union[str, ros_cdk_core.IResolvable] Property predictiveScalingMode: The mode of the predictive scaling rule.
predictive_task_buffer_time typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property predictiveTaskBufferTime: The amount of buffer time ahead of the forecast task execution time.
predictive_value_behavior typing.Union[str, ros_cdk_core.IResolvable] Property predictiveValueBehavior: The action taken on the predicted maximum value.
predictive_value_buffer typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property predictiveValueBuffer: The ratio of the increment to the predicted value when PredictiveValueBehavior is set to PredictiveValueOverrideMaxWithBuffer.
scale_in_evaluation_count typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property scaleInEvaluationCount: The number of consecutive times that the event-triggered task created for scale-in activities meets the threshold conditions before an alert is triggered.
scale_out_evaluation_count typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property scaleOutEvaluationCount: The number of consecutive times that the event-triggered task created for scale-out activities meets the threshold conditions before an alert is triggered.
scaling_rule_name typing.Union[str, ros_cdk_core.IResolvable] Property scalingRuleName: The name of the scaling rule.
scaling_rule_type typing.Union[str, ros_cdk_core.IResolvable] Property scalingRuleType: The type of the scaling rule.
step_adjustment typing.Union[ros_cdk_core.IResolvable, typing.List[typing.Union[ros_cdk_core.IResolvable, StepAdjustmentProperty]]] Property stepAdjustment: Details of the step adjustments.
target_value typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable] Property targetValue: The target value of a metric.

scaling_group_idRequired

scaling_group_id: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property scalingGroupId: ID of the scaling group of a scaling rule.


adjustment_typeOptional

adjustment_type: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property adjustmentType: The adjustment method of the scaling rule.

If you set ScalingRuleType to SimpleScalingRule or StepScalingRule, you must specify this parameter. Valid values:

  • QuantityChangeInCapacity: adds the specified number of ECS instances to or removes the specified number of ECS instances from the scaling group.
  • PercentChangeInCapacity: adds the specified percentage of ECS instances to or removes the specified percentage of ECS instances from the scaling group.
  • TotalCapacity: adjusts the number of ECS instances in the scaling group to a specified number.

adjustment_valueOptional

adjustment_value: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property adjustmentValue: The number of instances that must be scaled based on the scaling rule.

If you set ScalingRuleType to SimpleScalingRule or StepScalingRule, you must specify this parameter. The number of ECS instances that must be scaled in a scaling activity cannot exceed 1,000. Valid values of AdjustmentValue vary based on the value of AdjustmentType.

  • Valid values if AdjustmentType is set to QuantityChangeInCapacity: -1000 to

1.

  • Valid values if AdjustmentType is set to PercentChangeInCapacity: -100 to

1.

  • Valid values if AdjustmentType is set to TotalCapacity: 0 to 2000.

cooldownOptional

cooldown: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property cooldown: The cooldown period of the scaling rule.

This parameter is available only if you set ScalingRuleType to SimpleScalingRule. Valid values: 0 to 86400. Unit: seconds. You can leave this parameter empty.


disable_scale_inOptional

disable_scale_in: typing.Union[bool, IResolvable]
  • Type: typing.Union[bool, ros_cdk_core.IResolvable]

Property disableScaleIn: Specifies whether to disable scale-in.

This parameter is applicable only to target tracking scaling rules. Default value: false


estimated_instance_warmupOptional

estimated_instance_warmup: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property estimatedInstanceWarmup: The warm-up period of the ECS instances.

This parameter is applicable to target tracking scaling rules and step scaling rules. The system adds ECS instances that are in the warm-up state to the scaling group, but does not report monitoring data during the warm-up period to CloudMonitor. Note: When calculating the number of ECS instances to be adjusted, the system does not count ECS instances in the warm-up state as part of the current capacity of the scaling group. Valid values: 0 to 86400. Unit: seconds. Default value: 300.


initial_max_sizeOptional

initial_max_size: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property initialMaxSize: The maximum number of ECS instances in the scaling group, which is used together with PredictiveValueBehavior.

Default value: the same as the value of MaxSize


metric_nameOptional

metric_name: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property metricName: The predefined metric to monitor.

This parameter is required and applicable only to target tracking scaling rules and predictive scaling rules. Valid values of a target tracking scaling rule:

  • CpuUtilizationAgent: (recommended) the CPU utilization.
  • MemoryUtilization: (recommended) the memory usage.- CpuUtilization: the average CPU utilization.
  • IntranetTx: the outbound traffic over an internal network.
  • IntranetRx: the average inbound traffic over an internal network.
  • VpcInternetTx: the outbound traffic from a virtual private cloud (VPC) to the Internet.
  • VpcInternetRx: the inbound traffic from the Internet to a VPC.
  • LoadBalancerRealServerAverageQps: the queries per second (QPS) per Application Load Balancer (ALB) server group. Valid values of a predictive scaling rule:
  • CpuUtilization: the average CPU utilization.
  • IntranetRx: the average inbound traffic over an internal network.
  • IntranetTx: the average outbound traffic over an internal network.

min_adjustment_magnitudeOptional

min_adjustment_magnitude: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property minAdjustmentMagnitude: The minimum number of ECS instances to be adjusted in a scaling rule.

This parameter takes effect only when the scaling rule type is SimpleScalingRule or StepScalingRule and AdjustmentType is PercentChangeInCapacity.


predictive_scaling_modeOptional

predictive_scaling_mode: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property predictiveScalingMode: The mode of the predictive scaling rule.

Valid values:

  • PredictAndScale: generates forecasts and creates forecast tasks.
  • PredictOnly: generates forecasts but does not create forecast tasks. Default value: PredictAndScale

predictive_task_buffer_timeOptional

predictive_task_buffer_time: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property predictiveTaskBufferTime: The amount of buffer time ahead of the forecast task execution time.

By default, all scheduled tasks that are automatically created for a predictive scaling rule are executed at the beginning of each hour. You can set a buffer time to execute forecast tasks ahead of schedule, so that resources can be prepared in advance. Valid values: 0 to 60. Unit: minutes. Default value: 0


predictive_value_behaviorOptional

predictive_value_behavior: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property predictiveValueBehavior: The action taken on the predicted maximum value.

Valid values:

  • MaxOverridePredictiveValue: uses the initial maximum capacity as the maximum value for forecast tasks when the predicted value is greater than the initial maximum capacity.

  • PredictiveValueOverrideMax: uses the predicted value as the maximum value for forecast tasks when the predicted value is greater than the initial maximum capacity.

  • PredictiveValueOverrideMaxWithBuffer: increases the predicted value with a ratio, which is specified by PredictiveValueBuffer. If the value after the increase is greater than the initial maximum capacity, the value after the increase is used as the maximum value for forecast tasks. Default value: MaxOverridePredictiveValue

predictive_value_bufferOptional

predictive_value_buffer: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property predictiveValueBuffer: The ratio of the increment to the predicted value when PredictiveValueBehavior is set to PredictiveValueOverrideMaxWithBuffer.

When the value after the increase is greater than the initial maximum capacity, the value after the increase is used for forecast tasks. Valid values: 0 to 100 Default value: 0


scale_in_evaluation_countOptional

scale_in_evaluation_count: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property scaleInEvaluationCount: The number of consecutive times that the event-triggered task created for scale-in activities meets the threshold conditions before an alert is triggered.

After a target tracking scaling rule is created, an event-triggered task is automatically created and then associated with the target tracking scaling rule. Default value: 15.


scale_out_evaluation_countOptional

scale_out_evaluation_count: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property scaleOutEvaluationCount: The number of consecutive times that the event-triggered task created for scale-out activities meets the threshold conditions before an alert is triggered.

After a target tracking scaling rule is created, an event-triggered task is automatically created and then associated with the target tracking scaling rule. Default value: 3.


scaling_rule_nameOptional

scaling_rule_name: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property scalingRuleName: The name of the scaling rule.

The name must be 2 to 64 characters in length, and can contain letters, digits, underscores (_), hyphens (-), and periods (.). The name must start with a letter or a digit. The name of a scaling rule must be unique within an account in a region.

If you leave this parameter empty, the scaling rule ID is used.


scaling_rule_typeOptional

scaling_rule_type: typing.Union[str, IResolvable]
  • Type: typing.Union[str, ros_cdk_core.IResolvable]

Property scalingRuleType: The type of the scaling rule.

Valid values:

  • SimpleScalingRule: scales ECS instances based on the values of AdjustmentType and AdjustmentValue.
  • TargetTrackingScalingRule: dynamically calculates the number of ECS instances to be adjusted and tries to keep the value of a predefined monitoring metric close to TargetValue.
  • StepScalingRule: scales ECS instances in steps based on specified thresholds and metric values.
  • PredictiveScalingRule: uses machine learning to analyze historical monitoring data of the scaling group and then predicts the future values of monitored metrics, the rule then automatically creates scheduled tasks to set the boundary values for the scaling group. If this parameter value is not specified, the default value is SimpleScalingRule.

step_adjustmentOptional

step_adjustment: typing.Union[IResolvable, typing.List[typing.Union[IResolvable, StepAdjustmentProperty]]]
  • Type: typing.Union[ros_cdk_core.IResolvable, typing.List[typing.Union[ros_cdk_core.IResolvable, StepAdjustmentProperty]]]

Property stepAdjustment: Details of the step adjustments.


target_valueOptional

target_value: typing.Union[typing.Union[int, float], IResolvable]
  • Type: typing.Union[typing.Union[int, float], ros_cdk_core.IResolvable]

Property targetValue: The target value of a metric.

This parameter is required and applicable only to target tracking scaling rules and predictive scaling rules. The value of TargetValue must be greater than 0 and can have a maximum of three decimal places.