terraform-ninja
terraform-ninja

Reputation: 33

issue to setup alert onAazure Postgresql using Terraform

I have created postgresql with custome alert for cpu percentage using Terraform azure and its showing error metric name is not found

Please check the following code.

provider "azurerm" {
  features {}
  subscription_id = "***************"//add subscription ID
}

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "West Europe"
}

resource "azurerm_postgresql_server" "example" {
  name                = "example-psqlserver"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name

  administrator_login          = "psqladminun"
  administrator_login_password = "H@Sh1CoR3!"

  sku_name   = "GP_Gen5_4"
  version    = "9.6"
  storage_mb = 640000

  backup_retention_days        = 7
  geo_redundant_backup_enabled = true
  auto_grow_enabled            = true

  public_network_access_enabled    = false
  ssl_enforcement_enabled          = true
  ssl_minimal_tls_version_enforced = "TLS1_2"
}

resource "azurerm_monitor_action_group" "actiongrp" {
  name                = "Postgresql-AlertsActions1"
  resource_group_name =  azurerm_resource_group.example.name
  short_name          = "Postgresql1"

  email_receiver {
    name          = "sendtoadmin"
    email_address = "[email protected]"
  }
}

////This alert is Trigger once the CPU usage is goes more than 70 
resource "azurerm_monitor_metric_alert" "alert0" {

  name                = "testing"
  resource_group_name =  azurerm_resource_group.example.name
  scopes              = [azurerm_postgresql_server.example.id]
  description         = "Action will be triggered when CPU Utilization count is greater than 70."

  criteria {
    metric_namespace = "Microsoft.DBforPostgreSQL/servers"#"Microsoft.DBforPostgreSQL/servers"
    metric_name      = "CPU percent"  
    aggregation      = "Average"
    operator         = "GreaterThan"
    threshold        = 70
  }

  action {
    action_group_id = azurerm_monitor_action_group.actiongrp.id
  }
}

Error Screenshot

Below Microsoft DOC link is refer for alert specification-
https://learn.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported

Upvotes: 1

Views: 845

Answers (1)

Charles Xu
Charles Xu

Reputation: 31424

You just need to change the metric_name value in the criteria block from CPU percent into cpu_percent. It should be the name of the Metric, not the Metric Display Name.

Upvotes: 1

Related Questions