Terraform基于磁盘写操作/秒或磁盘写字节来创建自动缩放VM规则设置

时间:2019-09-30 20:20:11

标签: azure terraform terraform-provider-azure azure-vm-scale-set

基于autoscale rule criteria,我试图创建一个Terraform azurerm_monitor_autoscale_setting规则,该规则基于磁盘写入操作/秒磁盘写入来增加/减少VM节点字节。指标触发器如下所示:

rule {
     metric_trigger {
            operator           = "GreaterThan"
            threshold          = 50
            time_grain         = "PT1M"
            statistic          = "Average"
            time_window        = "PT5M"
            metric_name        = "Disk Write Operations/Sec"
            time_aggregation   = "Average"
    }
}

但是,我认为这不是正确的语法,因为一旦应用terraform脚本,它就永远不会创建此规则。另一方面,将规则替换为“ CPU百分比” 效果很好。除了“ CPU百分比” 以外,是否有人创建了任何指标?您能帮忙找出在terraform中执行该操作的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您缺少metric_resource_id。您可以尝试下面的示例,它对我有效。

resource "azurerm_monitor_autoscale_setting" "test" {
  name                = "myAutoscaleSetting"
  resource_group_name = "${azurerm_resource_group.test.name}"
  location            = "${azurerm_resource_group.test.location}"
  target_resource_id  = "${azurerm_virtual_machine_scale_set.test.id}"

  profile {
    name = "defaultProfile"

    capacity {
      default = 1
      minimum = 1
      maximum = 10
    }

    rule {
      metric_trigger {
        metric_name        = "Disk Write Operations/Sec"
        metric_resource_id = "${azurerm_virtual_machine_scale_set.test.id}"
        time_grain         = "PT1M"
        statistic          = "Average"
        time_window        = "PT5M"
        time_aggregation   = "Average"
        operator           = "GreaterThan"
        threshold          = 75
      }

      scale_action {
        direction = "Increase"
        type      = "ChangeCount"
        value     = "1"
        cooldown  = "PT1M"
      }
    }

    rule {
      metric_trigger {
        metric_name        = "Disk Write Operations/Sec"
        metric_resource_id = "${azurerm_virtual_machine_scale_set.test.id}"
        time_grain         = "PT1M"
        statistic          = "Average"
        time_window        = "PT5M"
        time_aggregation   = "Average"
        operator           = "LessThan"
        threshold          = 25
      }

      scale_action {
        direction = "Decrease"
        type      = "ChangeCount"
        value     = "1"
        cooldown  = "PT1M"
      }
    }
  }

  notification {
    email {
      send_to_subscription_administrator    = true
      send_to_subscription_co_administrator = true
      custom_emails                         = ["admin@contoso.com"]
    }
  }
}

结果: enter image description here enter image description here