You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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_alertsmessage="{{ template \"alerts.message\" . }}"
}
}
resource"grafana_contact_point""monitoring_alerts_teams_contact_point" {
name="${var.deployment_name}-MonitoringAlerts"teams {
url=var.teams_webhook_url_monitoring_alertsmessage="{{ template \"alerts.message\" . }}"
}
}
resource"grafana_rule_group""container_absents" {
name="ContainerAbsents"folder_uid=grafana_folder.terraform_folder_name.uidinterval_seconds=300rule {
name="${var.deployment_name} - Backend Absent"condition="C"data {
ref_id="A"relative_time_range {
from=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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=300to=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=300to=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=300to=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=60to=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=60to=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=60to=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=60to=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=60to=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=60to=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.uidinterval_seconds=600// 10 minutesrule {
name="ADT Warning - ${var.deployment_name}"condition="C"data {
ref_id="A"query_type="range"relative_time_range {
from=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=3600to=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=600to=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=600to=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=600to=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=21600to=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=21600to=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=21600to=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
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
}
terraform apply
Important Factoids
No response
References
No response
The text was updated successfully, but these errors were encountered:
Terraform Version
1.10.5
Terraform Grafana Provider Version
3.16.0
Grafana Version
Grafana Cloud version 11.5.0-81938
Affected Resource(s)
Terraform Configuration Files
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:
I already created other alerts using the above configuration and everything worked. Seems that something has changed in the Grafana APIs.
Steps to Reproduce
terraform apply
Important Factoids
No response
References
No response
The text was updated successfully, but these errors were encountered: