terraform-modules/grafana/alerts/main.tf
2025-07-10 17:33:11 +02:00

52 lines
1.4 KiB
HCL

resource "grafana_rule_group" "this" {
for_each = {
for g in local.groups :
g.uid => g
}
name = each.value.name
folder_uid = each.value.folder_uid
interval_seconds = (
substr(each.value.interval, length(each.value.interval) - 1, 1) == "m"
? tonumber(substr(each.value.interval, 0, length(each.value.interval) - 1)) * 60
: tonumber(trim(each.value.interval, "s"))
)
disable_provenance = var.disable_provenance
dynamic "rule" {
for_each = each.value.rules
content {
uid = rule.value.uid
name = try(rule.value.title, rule.value.name)
condition = rule.value.condition
no_data_state = rule.value.noDataState
exec_err_state = rule.value.execErrState
is_paused = try(rule.value.isPaused, false)
for = try(rule.value.for, null)
labels = try(rule.value.labels, {})
annotations = try(rule.value.annotations, {})
dynamic "data" {
for_each = rule.value.data
content {
ref_id = data.value.refId
datasource_uid = data.value.datasource_uid
dynamic "relative_time_range" {
for_each = [data.value.relative_time_range]
content {
from = relative_time_range.value.from
to = relative_time_range.value.to
}
}
model = jsonencode(data.value.model)
}
}
}
}
}