Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PutAlertRuleGroup (status 500) while provisioning Grafana Rule Group resources #2025

Open
Ale142 opened this issue Feb 10, 2025 · 1 comment

Comments

@Ale142
Copy link

Ale142 commented Feb 10, 2025

Terraform Version

1.10.5

Terraform Grafana Provider Version

3.16.0

Grafana Version

Grafana Cloud version 11.5.0-81938

Affected Resource(s)

  • grafana_rule_group

Terraform Configuration Files

resource "grafana_folder" "terraform_folder_name" {
  title = "${var.hospital_name} - Alarms"
}

resource "grafana_contact_point" "bad_alerts_teams_contact_point" {
  name = "${var.deployment_name}-BadAlerts"

  teams {
    url     = var.teams_webhook_url_bad_alerts
    message = "{{ template \"alerts.message\" . }}"

  }
}


resource "grafana_contact_point" "monitoring_alerts_teams_contact_point" {
  name = "${var.deployment_name}-MonitoringAlerts"

  teams {
    url     = var.teams_webhook_url_monitoring_alerts
    message = "{{ template \"alerts.message\" . }}"

  }
}


resource "grafana_rule_group" "container_absents" {
  name             = "ContainerAbsents"
  folder_uid       = grafana_folder.terraform_folder_name.uid
  interval_seconds = 300

  rule {
    name      = "${var.deployment_name} - Backend Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"code\",\"expr\":\"absent_over_time(container_last_seen{origin_prometheus=\\\"${var.origin_prometheus}\\\",container_label_com_docker_compose_service=\\\"backend\\\"}[60s])\",\"instant\":false,\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Backend container is missing in the ${var.deployment_name} deployment."
      summary     = "The Backend container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Proxy Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"code\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"proxy\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"instant\":false,\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Proxy container is missing in the ${var.deployment_name} deployment."
      summary     = "The Proxy container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - CalcService Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"calc_service\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Cacl Service container is missing in the ${var.deployment_name} deployment."
      summary     = "The Calc Service container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Integration Module Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"integration_module\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Integration Module container is missing in the ${var.deployment_name} deployment."
      summary     = "The Integration Module container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Promtail Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"disableTextWrap\":false,\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"promtail\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"fullMetaSearch\":false,\"includeNullMetadata\":true,\"instant\":false,\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\",\"useBackend\":false}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Promtail container is missing in the ${var.deployment_name} deployment."
      summary     = "The Promtail container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Database Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"ucaredb\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Database container is missing in the ${var.deployment_name} deployment."
      summary     = "The Database container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - EHR Extension Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 300
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"code\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"ehr_extension\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"instant\":false,\"interval\":\"\",\"intervalMs\":60000,\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 300
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 300
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "5m"
    annotations = {
      description = "EHR Extension container is missing in ${var.deployment_name} deployment"
      summary     = "EHR Extension container is missing in ${var.deployment_name} deployment"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Frontend Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"frontend\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Frontend container is missing in the ${var.deployment_name} deployment."
      summary     = "The Frontend container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Database Check Absent"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"disableTextWrap\":false,\"editorMode\":\"builder\",\"expr\":\"absent_over_time(container_last_seen{container_label_com_docker_compose_service=\\\"database_check\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"}[60s])\",\"fullMetaSearch\":false,\"includeNullMetadata\":true,\"instant\":false,\"interval\":\"\",\"intervalMs\":60000,\"legendFormat\":\"__auto\",\"maxDataPoints\":43200,\"range\":true,\"refId\":\"A\",\"useBackend\":false}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 60
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "10m"
    annotations = {
      description = "It seems the Database Check container is missing in the ${var.deployment_name} deployment."
      summary     = "The Database Check container is missing in ${var.deployment_name}"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.bad_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
}


resource "grafana_rule_group" "other_alarms" {
  name             = "EvaluateAlarms"
  folder_uid       = grafana_folder.terraform_folder_name.uid
  interval_seconds = 600 // 10 minutes

  rule {
    name      = "ADT Warning - ${var.deployment_name}"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.monitoring_docker_compose_project_name}\\\", compose_service_name=\\\"database_check\\\"} |= `adtCheckLogger` |= `WARN` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"
    labels = {
      alert_type    = "monitoring"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "Staging Warning - ${var.deployment_name}"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.monitoring_docker_compose_project_name}\\\", compose_service_name=\\\"database_check\\\"} |= `stagingCheckLogger` |= `WARN` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"

    labels = {
      alert_type    = "monitoring"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "Measurement Warning - ${var.deployment_name}"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.monitoring_docker_compose_project_name}\\\", compose_service_name=\\\"database_check\\\"} |= `measurementCheckLogger` |= `WARN` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"

    labels = {
      alert_type    = "monitoring"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "MachineLearning Warning - ${var.deployment_name}"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.monitoring_docker_compose_project_name}\\\", compose_service_name=\\\"database_check\\\"} |= `machineLearningCheckLogger` |= `WARN` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"

    labels = {
      alert_type    = "monitoring"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Python Preprocessing ERROR"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.docker_compose_project_name}\\\", compose_service_name=\\\"calc_service\\\"} |= `preprocessing` |~ `computationLog\\\\|\\\\[\\\\s*ERROR` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"

    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
      module        = "preprocessing"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Python Data Quality ERROR"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"code\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.docker_compose_project_name}\\\", compose_service_name=\\\"calc_service\\\"} |= `data_quality` |~ `computationLog\\\\|\\\\[\\\\s*ERROR` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"
    annotations = {
      description = "Found error(s) in the Data Quality logs in the ${var.hospital_name}'s deployment"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
      module        = "data_quality"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Python Staging ERROR"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.docker_compose_project_name}\\\", compose_service_name=\\\"calc_service\\\"} |= `staging` |~ `computationLog\\\\|\\\\[\\\\s*ERROR` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"
    annotations = {
      description = "Found error(s) in the Staging logs in the ${var.hospital_name} deployment"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
      module        = "staging"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Python Machine Learning ERROR"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"builder\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.docker_compose_project_name}\\\", compose_service_name=\\\"calc_service\\\"} |= `ai_modules` |~ `computationLog\\\\|\\\\[\\\\s*ERR` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 3600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"
    annotations = {
      description = "Found error(s) in the Machine Learning logs in the ${var.deployment_name} deployment"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
      module        = "machine_learning"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - Disk Usage"
    condition = "C"

    data {
      ref_id = "A"

      relative_time_range {
        from = 600
        to   = 0
      }

      datasource_uid = "grafanacloud-prom"
      model          = "{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"editorMode\":\"code\",\"expr\":\"100- (node_filesystem_avail_bytes{mountpoint=\\\"/\\\", fstype!=\\\"rootfs\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"} * 100 / node_filesystem_size_bytes{mountpoint=\\\"/\\\", fstype!=\\\"rootfs\\\", origin_prometheus=\\\"${var.origin_prometheus}\\\"})\",\"instant\":true,\"intervalMs\":1000,\"maxDataPoints\":43200,\"range\":false,\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[75],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"

    labels = {
      alert_type    = "monitoring"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
  rule {
    name      = "${var.deployment_name} - EHR Extension Errros"
    condition = "C"

    data {
      ref_id     = "A"
      query_type = "range"

      relative_time_range {
        from = 21600
        to   = 0
      }

      datasource_uid = "grafanacloud-logs"
      model          = "{\"datasource\":{\"type\":\"loki\",\"uid\":\"grafanacloud-logs\"},\"editorMode\":\"code\",\"expr\":\"count_over_time({compose_project_name=\\\"${var.docker_compose_project_name}\\\", compose_service_name=\\\"ehr_extension\\\"} |~ `|ERROR|` |= `HL7Service` [1h])\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"queryType\":\"range\",\"refId\":\"A\"}"
    }
    data {
      ref_id = "B"

      relative_time_range {
        from = 21600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"B\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"A\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"reducer\":\"last\",\"refId\":\"B\",\"type\":\"reduce\"}"
    }
    data {
      ref_id = "C"

      relative_time_range {
        from = 21600
        to   = 0
      }

      datasource_uid = "__expr__"
      model          = "{\"conditions\":[{\"evaluator\":{\"params\":[0],\"type\":\"gt\"},\"operator\":{\"type\":\"and\"},\"query\":{\"params\":[\"C\"]},\"reducer\":{\"params\":[],\"type\":\"last\"},\"type\":\"query\"}],\"datasource\":{\"type\":\"__expr__\",\"uid\":\"__expr__\"},\"expression\":\"B\",\"intervalMs\":1000,\"maxDataPoints\":43200,\"refId\":\"C\",\"type\":\"threshold\"}"
    }

    no_data_state  = "OK"
    exec_err_state = "Error"
    for            = "1h"
    annotations = {
      description = "One or multiple errors occured in the EhrExtension Service in ${var.deployment_name}'s Deployment"
      summary     = "One or multiple errors occured in the EhrExtension Service in ${var.deployment_name}'s Deployment"
    }
    labels = {
      alert_type    = "bad"
      contact_point = grafana_contact_point.monitoring_alerts_teams_contact_point.name
      hospital_name = "${var.hospital_name}"
    }
    is_paused = false
  }
}

Expected Behavior

The terraform configuration provided should create the listed resources. However, after creating the grafana_folder and the 2 grafana_contact_point it crashes when trying to create the grafana_rule_group resources.

Actual Behavior

The creation of the grafana_rule_group resources crashes with this error:

│ Error: [PUT /v1/provisioning/folder/{FolderUID}/rule-groups/{Group}] PutAlertRuleGroup (status 500): {}
│ 
│   with grafana_rule_group.other_alarms,
│   on main.tf line 15, in resource "grafana_rule_group" "other_alarms":
│   15: resource "grafana_rule_group" "other_alarms" {
│ 
╵
Operation failed: failed running terraform apply (exit 1)

I already created other alerts using the above configuration and everything worked. Seems that something has changed in the Grafana APIs.

Steps to Reproduce

  1. Create the variables.tf file with this variables
variable "origin_prometheus" {
  description = "The Prometheus Origin instance to alert on"
  type        = string
}

variable "deployment_name" {
  description = "The name of the deployment"
  type        = string
}


variable "teams_webhook_url_bad_alerts" {
  description = "The URL of the WebHook Teams Channel for Bad Alerts"
  type        = string
}

variable "teams_webhook_url_monitoring_alerts" {
  description = "The URL of the WebHook Teams Channel for Monitoring Alerts"
  type        = string
}

variable "hospital_name" {
  description = "The Hospital Name of the Integration"
  type        = string
}

variable "docker_compose_project_name" {
  description = "Docker Compose Project Name"
  type        = string
}

variable "monitoring_docker_compose_project_name" {
  description = "Monitoring Docker Compose Project Name"
  type        = string
}
  1. terraform apply

Important Factoids

No response

References

No response

@adamkoy
Copy link

adamkoy commented Feb 18, 2025

Same issue with me too when provisioning to AWS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants