Skip to content

ScalingRule

This class encapsulates and extends the ROS resource type ALIYUN::ESS::ScalingRuleCreates a scaling rule for Auto Scaling (ESS).

Initializers

import com.aliyun.ros.cdk.ess.ScalingRule;
ScalingRule.Builder.create(Construct scope, java.lang.String id, java.lang.Boolean enableResourcePropertyConstraint)
    .scalingGroupId(java.lang.String)
    .scalingGroupId(IResolvable)
//  .adjustmentType(java.lang.String)
//  .adjustmentType(IResolvable)
//  .adjustmentValue(java.lang.Number)
//  .adjustmentValue(IResolvable)
//  .cooldown(java.lang.Number)
//  .cooldown(IResolvable)
//  .disableScaleIn(java.lang.Boolean)
//  .disableScaleIn(IResolvable)
//  .estimatedInstanceWarmup(java.lang.Number)
//  .estimatedInstanceWarmup(IResolvable)
//  .initialMaxSize(java.lang.Number)
//  .initialMaxSize(IResolvable)
//  .metricName(java.lang.String)
//  .metricName(IResolvable)
//  .minAdjustmentMagnitude(java.lang.Number)
//  .minAdjustmentMagnitude(IResolvable)
//  .predictiveScalingMode(java.lang.String)
//  .predictiveScalingMode(IResolvable)
//  .predictiveTaskBufferTime(java.lang.Number)
//  .predictiveTaskBufferTime(IResolvable)
//  .predictiveValueBehavior(java.lang.String)
//  .predictiveValueBehavior(IResolvable)
//  .predictiveValueBuffer(java.lang.Number)
//  .predictiveValueBuffer(IResolvable)
//  .scaleInEvaluationCount(java.lang.Number)
//  .scaleInEvaluationCount(IResolvable)
//  .scaleOutEvaluationCount(java.lang.Number)
//  .scaleOutEvaluationCount(IResolvable)
//  .scalingRuleName(java.lang.String)
//  .scalingRuleName(IResolvable)
//  .scalingRuleType(java.lang.String)
//  .scalingRuleType(IResolvable)
//  .stepAdjustment(IResolvable)
//  .stepAdjustment(java.util.List<IResolvable)
//  .stepAdjustment(StepAdjustmentProperty>)
//  .targetValue(java.lang.Number)
//  .targetValue(IResolvable)
    .build();
Name Type Description
scope com.aliyun.ros.cdk.core.Construct No description.
id java.lang.String No description.
enableResourcePropertyConstraint java.lang.Boolean No description.
scalingGroupId java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property scalingGroupId: ID of the scaling group of a scaling rule.
adjustmentType java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property adjustmentType: The adjustment method of the scaling rule.
adjustmentValue java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property adjustmentValue: The number of instances that must be scaled based on the scaling rule.
cooldown java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property cooldown: The cooldown period of the scaling rule.
disableScaleIn java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property disableScaleIn: Specifies whether to disable scale-in.
estimatedInstanceWarmup java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property estimatedInstanceWarmup: The warm-up period of the ECS instances.
initialMaxSize java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property initialMaxSize: The maximum number of ECS instances in the scaling group, which is used together with PredictiveValueBehavior.
metricName java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property metricName: The predefined metric to monitor.
minAdjustmentMagnitude java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property minAdjustmentMagnitude: The minimum number of ECS instances to be adjusted in a scaling rule.
predictiveScalingMode java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property predictiveScalingMode: The mode of the predictive scaling rule.
predictiveTaskBufferTime java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property predictiveTaskBufferTime: The amount of buffer time ahead of the forecast task execution time.
predictiveValueBehavior java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property predictiveValueBehavior: The action taken on the predicted maximum value.
predictiveValueBuffer java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property predictiveValueBuffer: The ratio of the increment to the predicted value when PredictiveValueBehavior is set to PredictiveValueOverrideMaxWithBuffer.
scaleInEvaluationCount java.lang.Number OR com.aliyun.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.
scaleOutEvaluationCount java.lang.Number OR com.aliyun.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.
scalingRuleName java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property scalingRuleName: The name of the scaling rule.
scalingRuleType java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property scalingRuleType: The type of the scaling rule.
stepAdjustment com.aliyun.ros.cdk.core.IResolvable OR java.util.ListStepAdjustmentProperty> Property stepAdjustment: Details of the step adjustments.
targetValue java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable Property targetValue: The target value of a metric.

scopeRequired

  • Type: com.aliyun.ros.cdk.core.Construct

idRequired

  • Type: java.lang.String

enableResourcePropertyConstraintOptional

  • Type: java.lang.Boolean

scalingGroupIdRequired

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

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


adjustmentTypeOptional

  • Type: java.lang.String OR com.aliyun.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.

adjustmentValueOptional

  • Type: java.lang.Number OR com.aliyun.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

  • Type: java.lang.Number OR com.aliyun.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.


disableScaleInOptional

  • Type: java.lang.Boolean OR com.aliyun.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


estimatedInstanceWarmupOptional

  • Type: java.lang.Number OR com.aliyun.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.


initialMaxSizeOptional

  • Type: java.lang.Number OR com.aliyun.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


metricNameOptional

  • Type: java.lang.String OR com.aliyun.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.

minAdjustmentMagnitudeOptional

  • Type: java.lang.Number OR com.aliyun.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.


predictiveScalingModeOptional

  • Type: java.lang.String OR com.aliyun.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

predictiveTaskBufferTimeOptional

  • Type: java.lang.Number OR com.aliyun.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


predictiveValueBehaviorOptional

  • Type: java.lang.String OR com.aliyun.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

predictiveValueBufferOptional

  • Type: java.lang.Number OR com.aliyun.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


scaleInEvaluationCountOptional

  • Type: java.lang.Number OR com.aliyun.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.


scaleOutEvaluationCountOptional

  • Type: java.lang.Number OR com.aliyun.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.


scalingRuleNameOptional

  • Type: java.lang.String OR com.aliyun.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.


scalingRuleTypeOptional

  • Type: java.lang.String OR com.aliyun.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.

stepAdjustmentOptional

  • Type: com.aliyun.ros.cdk.core.IResolvable OR java.util.ListStepAdjustmentProperty>

Property stepAdjustment: Details of the step adjustments.


targetValueOptional

  • Type: java.lang.Number OR com.aliyun.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.


Methods

Name Description
toString Returns a string representation of this construct.
synthesize Allows this construct to emit artifacts into the cloud assembly during synthesis.
addCondition No description.
addCount No description.
addDependency No description.
addResourceDesc No description.
applyRemovalPolicy No description.
fetchCondition No description.
fetchDependency No description.
fetchResourceDesc No description.
getAtt No description.
setMetadata No description.

toString

public java.lang.String toString()

Returns a string representation of this construct.

synthesize

public void synthesize(ISynthesisSession session)

Allows this construct to emit artifacts into the cloud assembly during synthesis.

This method is usually implemented by framework-level constructs such as Stack and Asset as they participate in synthesizing the cloud assembly.

sessionRequired

  • Type: com.aliyun.ros.cdk.core.ISynthesisSession

The synthesis session.


addCondition

public void addCondition(RosCondition condition)

conditionRequired

  • Type: com.aliyun.ros.cdk.core.RosCondition

addCount

public void addCount(java.lang.Number OR IResolvable count)

countRequired

  • Type: java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable

addDependency

public void addDependency(Resource resource)

resourceRequired

  • Type: com.aliyun.ros.cdk.core.Resource

addResourceDesc

public void addResourceDesc(java.lang.String desc)

descRequired

  • Type: java.lang.String

applyRemovalPolicy

public void applyRemovalPolicy(RemovalPolicy policy)

policyRequired

  • Type: com.aliyun.ros.cdk.core.RemovalPolicy

fetchCondition

public RosCondition fetchCondition()

fetchDependency

public java.util.List<java.lang.String> fetchDependency()

fetchResourceDesc

public java.lang.String fetchResourceDesc()

getAtt

public IResolvable getAtt(java.lang.String name)

nameRequired

  • Type: java.lang.String

setMetadata

public void setMetadata(java.lang.String key, java.lang.Object value)

keyRequired

  • Type: java.lang.String

valueRequired

  • Type: java.lang.Object

Static Functions

Name Description
isConstruct Return whether the given object is a Construct.

isConstruct

import com.aliyun.ros.cdk.ess.ScalingRule;
ScalingRule.isConstruct(java.lang.Object x)

Return whether the given object is a Construct.

xRequired

  • Type: java.lang.Object

Properties

Name Type Description
node com.aliyun.ros.cdk.core.ConstructNode The construct tree node associated with this construct.
env com.aliyun.ros.cdk.core.IResourceEnvironment The environment this resource belongs to.
ref java.lang.String No description.
stack com.aliyun.ros.cdk.core.Stack The stack in which this resource is defined.
resource com.aliyun.ros.cdk.core.RosResource No description.
attrScalingRuleAri java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Attribute ScalingRuleAri: Unique identifier of a scaling rule.
attrScalingRuleId java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Attribute ScalingRuleId: ID of a scaling rule, generated by the system and globally unique.
props ScalingRuleProps No description.

nodeRequired

public ConstructNode getNode();
  • Type: com.aliyun.ros.cdk.core.ConstructNode

The construct tree node associated with this construct.


envRequired

public IResourceEnvironment getEnv();
  • Type: com.aliyun.ros.cdk.core.IResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


refRequired

public java.lang.String getRef();
  • Type: java.lang.String

stackRequired

public Stack getStack();
  • Type: com.aliyun.ros.cdk.core.Stack

The stack in which this resource is defined.


resourceOptional

public RosResource getResource();
  • Type: com.aliyun.ros.cdk.core.RosResource

attrScalingRuleAriRequired

public java.lang.Object getAttrScalingRuleAri();
  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Attribute ScalingRuleAri: Unique identifier of a scaling rule.


attrScalingRuleIdRequired

public java.lang.Object getAttrScalingRuleId();
  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Attribute ScalingRuleId: ID of a scaling rule, generated by the system and globally unique.


propsRequired

public ScalingRuleProps getProps();