【问题标题】:Terraform to create autoscale VM rule setting based on Disk Write Operations/Sec or Disk Write BytesTerraform 根据磁盘写入操作/秒或磁盘写入字节创建自动缩放 VM 规则设置
【发布时间】:2019-10-01 17:05:48
【问题描述】:

基于 autoscale rule criteria 我正在尝试创建一个 terraform azurerm_monitor_autoscale_setting 规则,该规则根据 Disk Write Operations/SecDisk Write Bytes 增加/减少 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 脚本,它就永远不会创建此规则。另一方面,用 "Percentage CPU" 替换规则可以正常工作。除“百分比 CPU” 之外,是否有人创建过任何指标?你能在terraform 中帮助找出正确的方法吗?

【问题讨论】:

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


    【解决方案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"]
        }
      }
    }
    

    结果:

    【讨论】:

    • 在我的情况下 Disk Write Operations/Sec 的 metric_resource_id 将与百分比 CPU 相同。这是否意味着 metric_name 是 Azure 用来确定实际使用哪个指标的?
    • 是的,你可以指定metric_name,这个线程有什么更新吗?
    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 2013-01-02
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多