gcp.autoscaler

GCP resource: https://cloud.google.com/compute/docs/reference/rest/v1/autoscalers

Filters

metrics

Supports metrics filters on resources.

All resources that have cloud watch metrics are supported.

Docs on cloud watch metrics

- name: firewall-hit-count
  resource: gcp.firewall
  filters:
  - type: metrics
    name: firewallinsights.googleapis.com/subnet/firewall_hit_count
    aligner: ALIGN_COUNT
    days: 14
    value: 1
    op: greater-than
properties:
  aligner:
    enum:
    - ALIGN_NONE
    - ALIGN_DELTA
    - ALIGN_RATE
    - ALIGN_INTERPOLATE
    - ALIGN_MIN
    - ALIGN_MAX
    - ALIGN_MEAN
    - ALIGN_COUNT
    - ALIGN_SUM
    - REDUCE_COUNT_FALSE
    - ALIGN_STDDEV
    - ALIGN_COUNT_TRUE
    - ALIGN_COUNT_FALSE
    - ALIGN_FRACTION_TRUE
    - ALIGN_PERCENTILE_99
    - ALIGN_PERCENTILE_95
    - ALIGN_PERCENTILE_50
    - ALIGN_PERCENTILE_05
    - ALIGN_PERCENT_CHANG
    type: string
  days:
    type: number
  filter:
    type: string
  group-by-fields:
    items:
      type: string
    type: array
  metric-key:
    type: string
  missing-value:
    type: number
  name:
    type: string
  op:
    enum:
    - eq
    - equal
    - ne
    - not-equal
    - gt
    - greater-than
    - ge
    - gte
    - le
    - lte
    - lt
    - less-than
    - glob
    - regex
    - regex-case
    - in
    - ni
    - not-in
    - contains
    - difference
    - intersect
    type: string
  reducer:
    enum:
    - REDUCE_NONE
    - REDUCE_MEAN
    - REDUCE_MIN
    - REDUCE_MAX
    - REDUCE_MEAN
    - REDUCE_SUM
    - REDUCE_STDDEV
    - REDUCE_COUNT
    - REDUCE_COUNT_TRUE
    - REDUCE_COUNT_FALSE
    - REDUCE_FRACTION_TRUE
    - REDUCE_PERCENTILE_99
    - REDUCE_PERCENTILE_95
    - REDUCE_PERCENTILE_50
    - REDUCE_PERCENTILE_05
    type: string
  type:
    enum:
    - metrics
  value:
    type: number
required:
- value
- name
- op

Permissions - monitoring.timeSeries.list

Actions

set

Patches configuration parameters for the autoscaling algorithm.

The coolDownPeriodSec specifies the number of seconds that the autoscaler should wait before it starts collecting information from a new instance.

The cpuUtilization.utilizationTarget specifies the target CPU utilization that the autoscaler should maintain.

The loadBalancingUtilization.utilizationTarget specifies fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that autoscaler should maintain.

The minNumReplicas specifies the minimum number of replicas that the autoscaler can scale down to.

The maxNumReplicas specifies the maximum number of instances that the autoscaler can scale up to.

Example:

policies:
  - name: gcp-autoscaler-set
    resource: gcp.autoscaler
    filters:
      - type: value
        key: name
        value: instance-group-2
    actions:
      - type: set
        coolDownPeriodSec: 20
        cpuUtilization:
          utilizationTarget: 0.7
        loadBalancingUtilization:
          utilizationTarget: 0.7
        minNumReplicas: 1
        maxNumReplicas: 4
properties:
  coolDownPeriodSec:
    minimum: 15
    type: integer
  cpuUtilization:
    properties:
      utilizationTarget:
        exclusiveMinimum: 0
        maximum: 1
        type: number
    required:
    - utilizationTarget
    type: object
  loadBalancingUtilization:
    properties:
      utilizationTarget:
        exclusiveMinimum: 0
        maximum: 1
        type: number
    required:
    - utilizationTarget
    type: object
  maxNumReplicas:
    exclusiveMinimum: 0
    type: integer
  minNumReplicas:
    exclusiveMinimum: 0
    type: integer
  type:
    enum:
    - set
required:
- type

Permissions - compute.autoscalers.update