Class: Google::Apis::ComputeAlpha::AutoscalingPolicy

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/compute_alpha/classes.rb,
lib/google/apis/compute_alpha/representations.rb,
lib/google/apis/compute_alpha/representations.rb

Overview

Cloud Autoscaler policy.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ AutoscalingPolicy

Returns a new instance of AutoscalingPolicy.



3496
3497
3498
# File 'lib/google/apis/compute_alpha/classes.rb', line 3496

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#cool_down_period_secFixnum

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

Returns:

  • (Fixnum)


3417
3418
3419
# File 'lib/google/apis/compute_alpha/classes.rb', line 3417

def cool_down_period_sec
  @cool_down_period_sec
end

#cpu_utilizationGoogle::Apis::ComputeAlpha::AutoscalingPolicyCpuUtilization

CPU utilization policy. Corresponds to the JSON property cpuUtilization



3422
3423
3424
# File 'lib/google/apis/compute_alpha/classes.rb', line 3422

def cpu_utilization
  @cpu_utilization
end

#custom_metric_utilizationsArray<Google::Apis::ComputeAlpha::AutoscalingPolicyCustomMetricUtilization>

Configuration parameters of autoscaling based on a custom metric. Corresponds to the JSON property customMetricUtilizations



3427
3428
3429
# File 'lib/google/apis/compute_alpha/classes.rb', line 3427

def custom_metric_utilizations
  @custom_metric_utilizations
end

#load_balancing_utilizationGoogle::Apis::ComputeAlpha::AutoscalingPolicyLoadBalancingUtilization

Configuration parameters of autoscaling based on load balancing. Corresponds to the JSON property loadBalancingUtilization



3432
3433
3434
# File 'lib/google/apis/compute_alpha/classes.rb', line 3432

def load_balancing_utilization
  @load_balancing_utilization
end

#max_num_replicasFixnum

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

Returns:

  • (Fixnum)


3439
3440
3441
# File 'lib/google/apis/compute_alpha/classes.rb', line 3439

def max_num_replicas
  @max_num_replicas
end

#min_num_replicasFixnum

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

Returns:

  • (Fixnum)


3446
3447
3448
# File 'lib/google/apis/compute_alpha/classes.rb', line 3446

def min_num_replicas
  @min_num_replicas
end

#modeString

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

Returns:

  • (String)


3461
3462
3463
# File 'lib/google/apis/compute_alpha/classes.rb', line 3461

def mode
  @mode
end

#scale_down_controlGoogle::Apis::ComputeAlpha::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



3468
3469
3470
# File 'lib/google/apis/compute_alpha/classes.rb', line 3468

def scale_down_control
  @scale_down_control
end

#scale_in_controlGoogle::Apis::ComputeAlpha::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



3475
3476
3477
# File 'lib/google/apis/compute_alpha/classes.rb', line 3475

def scale_in_control
  @scale_in_control
end

#scaling_schedulesHash<String,Google::Apis::ComputeAlpha::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



3483
3484
3485
# File 'lib/google/apis/compute_alpha/classes.rb', line 3483

def scaling_schedules
  @scaling_schedules
end

#stabilization_period_secFixnum

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

Returns:

  • (Fixnum)


3494
3495
3496
# File 'lib/google/apis/compute_alpha/classes.rb', line 3494

def stabilization_period_sec
  @stabilization_period_sec
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
# File 'lib/google/apis/compute_alpha/classes.rb', line 3501

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