Terraform 基于磁盘写入 Operations/Sec 或磁盘写入字节数创建自动缩放 VM 规则设置

Terraform to create autoscale VM rule setting based on Disk Write Operations/Sec or Disk Write Bytes

基于 autoscale rule criteria 我正在尝试创建一个 terraform azurerm_monitor_autoscale_setting 规则,其中 increase/decreases VM 节点基于 磁盘写入 Operations/Sec 磁盘写入字节数 。指标触发器如下所示:

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 脚本,它就永远不会创建此规则。另一方面,用 "Percentage CPU" 替换规则效果很好。除了 "Percentage CPU" 之外,是否有人创建了任何指标?在 terraform?

中,你能帮忙找出正确的方法吗?

你缺少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"]
    }
  }
}

结果: