From 532f7c9c3ed20fa692ee9910280a112870013ba9 Mon Sep 17 00:00:00 2001 From: Kaushik Basu Date: Wed, 26 Nov 2025 23:01:41 +0100 Subject: [PATCH] Trying to fix another alert error --- network_speed/grafana/terraform/main.tf | 35 ++++++++++++++++++++----- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/network_speed/grafana/terraform/main.tf b/network_speed/grafana/terraform/main.tf index ae9b560..25f9f47 100644 --- a/network_speed/grafana/terraform/main.tf +++ b/network_speed/grafana/terraform/main.tf @@ -138,7 +138,7 @@ resource "grafana_rule_group" "internet_speed_alerts" { rule { name = "Slow Download Speed" - condition = "B" + condition = "C" # Query A: Get download speed data { @@ -159,22 +159,43 @@ resource "grafana_rule_group" "internet_speed_alerts" { }) } - # Query B: Evaluates if Query A's last value is below the threshold - # Returns: 1 (true) if below threshold, 0 (false) if above + # Query B: Reduce A to a single value (required for alerting) data { ref_id = "B" relative_time_range { - from = var.lookback_window + from = 0 to = 0 } datasource_uid = "__expr__" model = jsonencode({ - expression = "A" refId = "B" + type = "reduce" + expression = "A" + reducer = "last" + settings = { + mode = "strict" + } + }) + } + + # Query C: Threshold check on reduced value + data { + ref_id = "C" + + relative_time_range { + from = 0 + to = 0 + } + + datasource_uid = "__expr__" + + model = jsonencode({ + refId = "C" type = "threshold" + expression = "B" conditions = [ { evaluator = { @@ -185,7 +206,7 @@ resource "grafana_rule_group" "internet_speed_alerts" { type = "and" } query = { - params = ["A"] + params = ["B"] } reducer = { params = [] @@ -197,7 +218,7 @@ resource "grafana_rule_group" "internet_speed_alerts" { }) } - no_data_state = "NoData" + no_data_state = "OK" exec_err_state = "Error" for = "${local.failure_count_window}s"