Search code examples
google-cloud-platformterraformterraform-provider-gcpgoogle-cloud-monitoring

Terraform Google provider, create log-based alerting policy


I need to create a log-based alerting policy via Terraform Google cloud provider : https://cloud.google.com/logging/docs/alerting/monitoring-logs#lba

I checked from the Terraform official documentation and i saw 'google_monitoring_alert_policy' resource : https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_alert_policy

I don't found with this doc how creating a log based alerting policy.
I can create an alerting policy with type 'Metrics' but not with type 'Logs'

enter image description here

I use the latest version of Terraform Google cloud provider : https://registry.terraform.io/providers/hashicorp/google/latest

How can i create a log-based alerting policy with Terraform Google provider please ?

Thanks in advance for your help.


Solution

  • Thanks Guillaume.

    Yes it's the way i solved the issue.

    Now there is no way to directly create alerting with log type, via Terraform.

    The steps to solve this problem :

    • Create un log based metric with expected filter
    • Create an alerting policy with type metric based on the previous created log based metric
    resource "google_logging_metric" "my_log_metrics" {
      project = var.project_id
      name = "my-log-metric"
      filter = "..."
      description = "..."
      metric_descriptor {
        metric_kind = "..."
        value_type = "..."
      }
    }
    
    resource "google_monitoring_alert_policy" "my_policy" {
      project = var.project_id
      display_name = "my-policy"
      combiner = "OR"
      conditions {
        display_name = "my-policy"
        condition_threshold {
          filter = "metric.type=\"logging.googleapis.com/user/my-log-metric\" AND resource.type=\"cloud_composer_environment\""
        ...
        }
    }