From b0ee9a46a78f89e4be3dbfe19f2c5db87d21ef29 Mon Sep 17 00:00:00 2001 From: Leo DiCara Date: Tue, 18 Feb 2025 14:31:23 -0800 Subject: [PATCH] chore(slo provider): update failure for prometheus queries in grafanaQueries --- internal/resources/slo/resource_slo.go | 6 ++++++ internal/resources/slo/resource_slo_test.go | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/internal/resources/slo/resource_slo.go b/internal/resources/slo/resource_slo.go index a282d8b8a..f51988f2f 100644 --- a/internal/resources/slo/resource_slo.go +++ b/internal/resources/slo/resource_slo.go @@ -720,6 +720,12 @@ func ValidateBigTent() schema.SchemaValidateDiagFunc { var gmrQuery []map[string]any err := json.Unmarshal([]byte(v), &gmrQuery) if err != nil { + diags = append(diags, diag.Diagnostic{ + Severity: diag.Error, + Summary: "Missing Required Field", + Detail: fmt.Sprintf("expected grafana queries to be valid JSON format"), + AttributePath: path, + }) return diags } diff --git a/internal/resources/slo/resource_slo_test.go b/internal/resources/slo/resource_slo_test.go index 0df84dcec..5832a8af0 100644 --- a/internal/resources/slo/resource_slo_test.go +++ b/internal/resources/slo/resource_slo_test.go @@ -426,8 +426,13 @@ func TestValidateBigTent(t *testing.T) { expectedDiags diag.Diagnostics }{ "prometheus": { - query: "sum(rate(apiserver_request_total{code!=\"500\"}[$__rate_interval])) / sum(rate(apiserver_request_total[$__rate_interval]))", - expectedDiags: diag.Diagnostics{}, + query: "sum(rate(apiserver_request_total{code!=\"500\"}[$__rate_interval])) / sum(rate(apiserver_request_total[$__rate_interval]))", + expectedDiags: diag.Diagnostics{diag.Diagnostic{ + Severity: diag.Error, + Summary: "Missing Required Field", + Detail: fmt.Sprintf("expected grafana queries to be valid JSON format"), + AttributePath: cty.IndexPath(cty.Value{}), + }}, }, "bigTent_success": { query: createBigTent(true, []map[string]any{}),