Class: Google::Apis::ComputeBeta::AutoscalingPolicy
- Inherits:
-
Object
- Object
- Google::Apis::ComputeBeta::AutoscalingPolicy
- Includes:
- Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
- Defined in:
- lib/google/apis/compute_beta/classes.rb,
lib/google/apis/compute_beta/representations.rb,
lib/google/apis/compute_beta/representations.rb
Overview
Cloud Autoscaler policy.
Instance Attribute Summary collapse
-
#cool_down_period_sec ⇒ Fixnum
The number of seconds that your application takes to initialize on a VM instance.
-
#cpu_utilization ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyCpuUtilization
CPU utilization policy.
-
#custom_metric_utilizations ⇒ Array<Google::Apis::ComputeBeta::AutoscalingPolicyCustomMetricUtilization>
Configuration parameters of autoscaling based on a custom metric.
-
#load_balancing_utilization ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyLoadBalancingUtilization
Configuration parameters of autoscaling based on load balancing.
-
#max_num_replicas ⇒ Fixnum
The maximum number of instances that the autoscaler can scale out to.
-
#min_num_replicas ⇒ Fixnum
The minimum number of replicas that the autoscaler can scale in to.
-
#mode ⇒ String
Defines the operating mode for this policy.
-
#scale_down_control ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyScaleDownControl
Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below.
-
#scale_in_control ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyScaleInControl
Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below.
-
#scaling_schedules ⇒ Hash<String,Google::Apis::ComputeBeta::AutoscalingPolicyScalingSchedule>
Scaling schedules defined for an autoscaler.
-
#stabilization_period_sec ⇒ Fixnum
The number of seconds that autoscaler waits for load stabilization before making scale-in decisions.
Instance Method Summary collapse
-
#initialize(**args) ⇒ AutoscalingPolicy
constructor
A new instance of AutoscalingPolicy.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ AutoscalingPolicy
Returns a new instance of AutoscalingPolicy.
2989 2990 2991 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2989 def initialize(**args) update!(**args) end |
Instance Attribute Details
#cool_down_period_sec ⇒ Fixnum
The number of seconds that your application takes to initialize on a VM
instance. This is referred to as the
initialization period.
Specifying an accurate initialization period improves
autoscaler decisions. For example, when scaling out, the autoscaler ignores
data from VMs that are still initializing because those VMs might not yet
represent normal usage of your application. The default initialization
period is 60 seconds.
Initialization periods might vary because of numerous
factors. We recommend that you test how long your application takes to
initialize. To do this, create a VM and time your application's startup
process.
Corresponds to the JSON property coolDownPeriodSec
2910 2911 2912 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2910 def cool_down_period_sec @cool_down_period_sec end |
#cpu_utilization ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyCpuUtilization
CPU utilization policy.
Corresponds to the JSON property cpuUtilization
2915 2916 2917 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2915 def cpu_utilization @cpu_utilization end |
#custom_metric_utilizations ⇒ Array<Google::Apis::ComputeBeta::AutoscalingPolicyCustomMetricUtilization>
Configuration parameters of autoscaling based on a custom metric.
Corresponds to the JSON property customMetricUtilizations
2920 2921 2922 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2920 def custom_metric_utilizations @custom_metric_utilizations end |
#load_balancing_utilization ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyLoadBalancingUtilization
Configuration parameters of autoscaling based on load balancing.
Corresponds to the JSON property loadBalancingUtilization
2925 2926 2927 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2925 def load_balancing_utilization @load_balancing_utilization end |
#max_num_replicas ⇒ Fixnum
The maximum number of instances that the autoscaler can scale out to. This
is required when creating or updating an autoscaler. The maximum number
of replicas must not be lower than minimal number of replicas.
Corresponds to the JSON property maxNumReplicas
2932 2933 2934 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2932 def max_num_replicas @max_num_replicas end |
#min_num_replicas ⇒ Fixnum
The minimum number of replicas that the autoscaler can scale in to.
This cannot be less than 0. If not provided, autoscaler chooses a
default value depending on maximum number of instances allowed.
Corresponds to the JSON property minNumReplicas
2939 2940 2941 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2939 def min_num_replicas @min_num_replicas end |
#mode ⇒ String
Defines the operating mode for this policy. The following modes are available:
- OFF: Disables the autoscaler but maintains its configuration.
- ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only.
- ON: Enables all autoscaler activities according to its
policy.
For more information, see
"Turning off or restricting an autoscaler"
Corresponds to the JSON property
mode
2954 2955 2956 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2954 def mode @mode end |
#scale_down_control ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyScaleDownControl
Configuration that allows for slower scale in so that even if Autoscaler
recommends an abrupt scale in of a MIG, it will be throttled as specified
by the parameters below.
Corresponds to the JSON property scaleDownControl
2961 2962 2963 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2961 def scale_down_control @scale_down_control end |
#scale_in_control ⇒ Google::Apis::ComputeBeta::AutoscalingPolicyScaleInControl
Configuration that allows for slower scale in so that even if Autoscaler
recommends an abrupt scale in of a MIG, it will be throttled as specified
by the parameters below.
Corresponds to the JSON property scaleInControl
2968 2969 2970 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2968 def scale_in_control @scale_in_control end |
#scaling_schedules ⇒ Hash<String,Google::Apis::ComputeBeta::AutoscalingPolicyScalingSchedule>
Scaling schedules defined for an autoscaler. Multiple schedules
can be set on an autoscaler, and they can overlap. During overlapping
periods the greatest min_required_replicas of all scaling schedules is
applied. Up to 128 scaling schedules are allowed.
Corresponds to the JSON property scalingSchedules
2976 2977 2978 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2976 def scaling_schedules @scaling_schedules end |
#stabilization_period_sec ⇒ Fixnum
The number of seconds that autoscaler waits for load stabilization before
making scale-in decisions. This is referred to as the
stabilization period.
This might appear as a delay in scaling in but it is an important mechanism
for your application to not have fluctuating size due to short term load
fluctuations.
The default stabilization period is 600 seconds.
Corresponds to the JSON property stabilizationPeriodSec
2987 2988 2989 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2987 def stabilization_period_sec @stabilization_period_sec end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 |
# File 'lib/google/apis/compute_beta/classes.rb', line 2994 def update!(**args) @cool_down_period_sec = args[:cool_down_period_sec] if args.key?(:cool_down_period_sec) @cpu_utilization = args[:cpu_utilization] if args.key?(:cpu_utilization) @custom_metric_utilizations = args[:custom_metric_utilizations] if args.key?(:custom_metric_utilizations) @load_balancing_utilization = args[:load_balancing_utilization] if args.key?(:load_balancing_utilization) @max_num_replicas = args[:max_num_replicas] if args.key?(:max_num_replicas) @min_num_replicas = args[:min_num_replicas] if args.key?(:min_num_replicas) @mode = args[:mode] if args.key?(:mode) @scale_down_control = args[:scale_down_control] if args.key?(:scale_down_control) @scale_in_control = args[:scale_in_control] if args.key?(:scale_in_control) @scaling_schedules = args[:scaling_schedules] if args.key?(:scaling_schedules) @stabilization_period_sec = args[:stabilization_period_sec] if args.key?(:stabilization_period_sec) end |