必须定义命名空间才能使用自定义指标
Namespace must be defined to use Custom Metrics
我正在尝试为使用 Terraform 的 VM 部署内存指标,该指标属于 VM 的来宾指标,我已经为我正在使用的指标定义了命名空间,但它抛出了以下错误。
创建或更新指标警报“内存使用警报”时出错(资源组“MyTemp”):insights.MetricAlertsClient#CreateOrUpdate:响应请求失败:StatusCode=400 -- 原始错误:autorest/azure : 服务返回错误。 Status=400 Code="BadRequest" Message="未找到以下指标名称:Memory\% Committed bytes
正在使用。 请注意,对于自定义指标,必须指定相关的指标命名空间。
resource "azurerm_monitor_metric_alert" "myalert" {
name = "Memory Usage Alert"
resource_group_name = var.rg_name //resource name to which you want to deploy this alert
scopes = [var.virtual_machine_id]
description = "Action will be triggered when Memory Utilzation count is greater than 85."
target_resource_type = "Microsoft.Compute/virtualMachines"
target_resource_location = "centralindia"
frequency = "PT30M"
window_size = "P1D"
severity = "2"
enabled = "true"
criteria {
metric_namespace = "azure.vm.windows.guestmetrics"
metric_name = "Memory\% Committed bytes in use"
aggregation = "Average"
operator = "GreaterThanOrEqual"
threshold = 85
}
action {
action_group_id = var.action_name
}
}
关于这个问题,可以参考下面的脚本
resource "random_string" "password" {
length = 16
special = false
}
data "azurerm_resource_group" "mygroup" {
name = var.resource_group_name
}
resource "azurerm_storage_account" "account" {
name = "myaccount1458975"
resource_group_name = data.azurerm_resource_group.mygroup.name
location = data.azurerm_resource_group.mygroup.location
account_tier = "Standard"
account_replication_type = "GRS"
}
resource "azurerm_virtual_machine_extension" "vmextension" {
name = random_string.password.result
virtual_machine_id = < your VM id>
publisher = "Microsoft.Azure.Diagnostics"
type = "IaaSDiagnostics"
type_handler_version = "1.11"
auto_upgrade_minor_version = true
depends_on = [
azurerm_storage_account.account
]
settings = <<SETTINGS
{
"StorageAccount": "${azurerm_storage_account.account.name}",
"WadCfg": {
"SinksConfig": {
"Sink": [
{
"name": "AzMonSink",
"AzureMonitor": {}
}
]
},
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
"Metrics": {
"resourceId": "your VM id",
"MetricAggregation": [
{
"scheduledTransferPeriod": "PT1H"
},
{
"scheduledTransferPeriod": "PT1M"
}
]
},
"DiagnosticInfrastructureLogs": {
"scheduledTransferLogLevelFilter": "Error"
},
"PerformanceCounters": {
"sinks": "AzMonSink",
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\Processor Information(_Total)\% Processor Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\% Privileged Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\% User Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\Processor Frequency",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Processes",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Thread Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Handle Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\System Up Time",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Context Switches/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Processor Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\% Committed Bytes In Use",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Available Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Committed Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Cache Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pool Paged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pool Nonpaged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pages/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Page Faults/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Working Set",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Working Set - Private",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Read Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Write Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Idle Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Read Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Write Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Transfers/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Reads/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Writes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Transfer",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Read",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Write",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Read Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Write Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Free Space",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Free Megabytes",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Total/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Outbound Errors",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Received Errors",
"unit": "Count",
"sampleRate": "PT60S"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
},
{
"name": "Security!*[System[band(Keywords,4503599627370496)]]"
},
{
"name": "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
}
]
}
}
}
}
SETTINGS
protected_settings = <<SETTINGS
{
"storageAccountName": "${azurerm_storage_account.account.name}",
"storageAccountKey": "${azurerm_storage_account.account.primary_access_key }",
"storageAccountEndPoint": "https://core.windows.net/"
}
SETTINGS
}
请注意,在 运行 脚本之前,您需要在您的 VM
中启用 Azure MSI 和 boot_diagnostics
- 创建指标警报
resource "azurerm_monitor_metric_alert" "myalert" {
name = "myalert"
resource_group_name = var.resource_group_name
scopes = [var.virtual_machine_id]
description = "Action will be triggered when Memory Utilzation count is greater than 85."
severity = "2"
enabled = "true"
frequency = "PT1M"
window_size = "PT5M",
target_resource_type = "Microsoft.Compute/virtualMachines"
target_resource_location = "japaneast"
criteria {
metric_namespace = "azure.vm.windows.guestmetrics"
metric_name = "Memory\% Committed bytes in use"
aggregation = "Average"
operator = "GreaterThanOrEqual"
threshold = 85
}
action {
action_group_id = var.action_group_name
}
}
我正在尝试为使用 Terraform 的 VM 部署内存指标,该指标属于 VM 的来宾指标,我已经为我正在使用的指标定义了命名空间,但它抛出了以下错误。
创建或更新指标警报“内存使用警报”时出错(资源组“MyTemp”):insights.MetricAlertsClient#CreateOrUpdate:响应请求失败:StatusCode=400 -- 原始错误:autorest/azure : 服务返回错误。 Status=400 Code="BadRequest" Message="未找到以下指标名称:Memory\% Committed bytes 正在使用。 请注意,对于自定义指标,必须指定相关的指标命名空间。
resource "azurerm_monitor_metric_alert" "myalert" {
name = "Memory Usage Alert"
resource_group_name = var.rg_name //resource name to which you want to deploy this alert
scopes = [var.virtual_machine_id]
description = "Action will be triggered when Memory Utilzation count is greater than 85."
target_resource_type = "Microsoft.Compute/virtualMachines"
target_resource_location = "centralindia"
frequency = "PT30M"
window_size = "P1D"
severity = "2"
enabled = "true"
criteria {
metric_namespace = "azure.vm.windows.guestmetrics"
metric_name = "Memory\% Committed bytes in use"
aggregation = "Average"
operator = "GreaterThanOrEqual"
threshold = 85
}
action {
action_group_id = var.action_name
}
}
关于这个问题,可以参考下面的脚本
resource "random_string" "password" {
length = 16
special = false
}
data "azurerm_resource_group" "mygroup" {
name = var.resource_group_name
}
resource "azurerm_storage_account" "account" {
name = "myaccount1458975"
resource_group_name = data.azurerm_resource_group.mygroup.name
location = data.azurerm_resource_group.mygroup.location
account_tier = "Standard"
account_replication_type = "GRS"
}
resource "azurerm_virtual_machine_extension" "vmextension" {
name = random_string.password.result
virtual_machine_id = < your VM id>
publisher = "Microsoft.Azure.Diagnostics"
type = "IaaSDiagnostics"
type_handler_version = "1.11"
auto_upgrade_minor_version = true
depends_on = [
azurerm_storage_account.account
]
settings = <<SETTINGS
{
"StorageAccount": "${azurerm_storage_account.account.name}",
"WadCfg": {
"SinksConfig": {
"Sink": [
{
"name": "AzMonSink",
"AzureMonitor": {}
}
]
},
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
"Metrics": {
"resourceId": "your VM id",
"MetricAggregation": [
{
"scheduledTransferPeriod": "PT1H"
},
{
"scheduledTransferPeriod": "PT1M"
}
]
},
"DiagnosticInfrastructureLogs": {
"scheduledTransferLogLevelFilter": "Error"
},
"PerformanceCounters": {
"sinks": "AzMonSink",
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\Processor Information(_Total)\% Processor Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\% Privileged Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\% User Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Processor Information(_Total)\Processor Frequency",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Processes",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Thread Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Handle Count",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\System Up Time",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Context Switches/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\System\Processor Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\% Committed Bytes In Use",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Available Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Committed Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Cache Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pool Paged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pool Nonpaged Bytes",
"unit": "Bytes",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Pages/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Memory\Page Faults/sec",
"unit": "CountPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Working Set",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Process(_Total)\Working Set - Private",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Read Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Disk Write Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Idle Time",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Read Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Write Bytes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Transfers/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Reads/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Disk Writes/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Transfer",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Read",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk sec/Write",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Read Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Avg. Disk Write Queue Length",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\% Free Space",
"unit": "Percent",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\LogicalDisk(_Total)\Free Megabytes",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Total/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Bytes Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Sent/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Received/sec",
"unit": "BytesPerSecond",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Outbound Errors",
"unit": "Count",
"sampleRate": "PT60S"
},
{
"counterSpecifier": "\Network Interface(*)\Packets Received Errors",
"unit": "Count",
"sampleRate": "PT60S"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
},
{
"name": "Security!*[System[band(Keywords,4503599627370496)]]"
},
{
"name": "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
}
]
}
}
}
}
SETTINGS
protected_settings = <<SETTINGS
{
"storageAccountName": "${azurerm_storage_account.account.name}",
"storageAccountKey": "${azurerm_storage_account.account.primary_access_key }",
"storageAccountEndPoint": "https://core.windows.net/"
}
SETTINGS
}
请注意,在 运行 脚本之前,您需要在您的 VM
中启用 Azure MSI 和 boot_diagnostics- 创建指标警报
resource "azurerm_monitor_metric_alert" "myalert" {
name = "myalert"
resource_group_name = var.resource_group_name
scopes = [var.virtual_machine_id]
description = "Action will be triggered when Memory Utilzation count is greater than 85."
severity = "2"
enabled = "true"
frequency = "PT1M"
window_size = "PT5M",
target_resource_type = "Microsoft.Compute/virtualMachines"
target_resource_location = "japaneast"
criteria {
metric_namespace = "azure.vm.windows.guestmetrics"
metric_name = "Memory\% Committed bytes in use"
aggregation = "Average"
operator = "GreaterThanOrEqual"
threshold = 85
}
action {
action_group_id = var.action_group_name
}
}