alicloud_ess_alarm

Provides a ESS alarm task resource.

For information about ess alarm, see CreateAlarm.

Example Usage

variable "name" {
  default = "terraform-example"
}

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

locals {
  name = "${var.name}-${random_integer.default.result}"
}

data "alicloud_zones" "default" {
  available_disk_category     = "cloud_efficiency"
  available_resource_creation = "VSwitch"
}

data "alicloud_instance_types" "default" {
  availability_zone = data.alicloud_zones.default.zones[0].id
  cpu_core_count    = 2
  memory_size       = 4
}

data "alicloud_images" "default" {
  name_regex  = "^ubuntu_18.*64"
  most_recent = true
  owners      = "system"
}

resource "alicloud_vpc" "default" {
  vpc_name   = local.name
  cidr_block = "172.16.0.0/16"
}

resource "alicloud_vswitch" "default" {
  vpc_id       = alicloud_vpc.default.id
  cidr_block   = "172.16.0.0/24"
  zone_id      = data.alicloud_zones.default.zones[0].id
  vswitch_name = local.name
}

resource "alicloud_security_group" "default" {
  name   = local.name
  vpc_id = alicloud_vpc.default.id
}

resource "alicloud_security_group_rule" "default" {
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "22/22"
  priority          = 1
  security_group_id = alicloud_security_group.default.id
  cidr_ip           = "172.16.0.0/24"
}

resource "alicloud_vswitch" "default2" {
  vpc_id       = alicloud_vpc.default.id
  cidr_block   = "172.16.1.0/24"
  zone_id      = data.alicloud_zones.default.zones[0].id
  vswitch_name = "${var.name}-bar"
}

resource "alicloud_ess_scaling_group" "default" {
  min_size           = 1
  max_size           = 1
  scaling_group_name = local.name
  default_cooldown   = 20
  vswitch_ids        = [alicloud_vswitch.default.id, alicloud_vswitch.default2.id]
  removal_policies   = ["OldestInstance", "NewestInstance"]
}

resource "alicloud_ess_scaling_rule" "default" {
  scaling_rule_name = local.name
  scaling_group_id  = alicloud_ess_scaling_group.default.id
  adjustment_type   = "TotalCapacity"
  adjustment_value  = 2
  cooldown          = 60
}

resource "alicloud_ess_alarm" "default" {
  name                = local.name
  description         = var.name
  alarm_actions       = [alicloud_ess_scaling_rule.default.ari]
  scaling_group_id    = alicloud_ess_scaling_group.default.id
  metric_type         = "system"
  metric_name         = "CpuUtilization"
  period              = 300
  statistics          = "Average"
  threshold           = 200.3
  comparison_operator = ">="
  evaluation_count    = 2
}

Module Support

You can use to the existing autoscaling-rule module to create alarm task, different type rules and scheduled task one-click.

Argument Reference

The following arguments are supported:

dimensions

Supported metric names and dimensions :

MetricName Dimensions
CpuUtilization user_id,scaling_group
ClassicInternetRx user_id,scaling_group
ClassicInternetTx user_id,scaling_group
VpcInternetRx user_id,scaling_group
VpcInternetTx user_id,scaling_group
IntranetRx user_id,scaling_group
IntranetTx user_id,scaling_group
LoadAverage user_id,scaling_group
MemoryUtilization user_id,scaling_group
SystemDiskReadBps user_id,scaling_group
SystemDiskWriteBps user_id,scaling_group
SystemDiskReadOps user_id,scaling_group
SystemDiskWriteOps user_id,scaling_group
PackagesNetIn user_id,scaling_group,device
PackagesNetOut user_id,scaling_group,device
TcpConnection user_id,scaling_group,state

Attribute Reference

The following attributes are exported:

Import

Ess alarm can be imported using the id, e.g.

$ terraform import alicloud_ess_alarm.example asg-2ze500_045efffe-4d05