基于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
中执行该操作的正确方法吗?
答案 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"]
}
}
}