From a21d1e50f101f7b136b6b90c9dcf2db944d3f237 Mon Sep 17 00:00:00 2001 From: Santiago Date: Mon, 29 Nov 2021 15:26:51 -0300 Subject: [PATCH] avoid template execution errors on missing values (#41617) --- pkg/services/ngalert/state/template.go | 2 +- pkg/services/ngalert/state/template_test.go | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/services/ngalert/state/template.go b/pkg/services/ngalert/state/template.go index 301c31ae525..2408af5fe49 100644 --- a/pkg/services/ngalert/state/template.go +++ b/pkg/services/ngalert/state/template.go @@ -54,7 +54,7 @@ func expandTemplate(name, text string, labels map[string]string, alertInstance e return nil, nil }, externalURL, - []string{"missingkey=error"}, + []string{"missingkey=invalid"}, ) expander.Funcs(text_template.FuncMap{ diff --git a/pkg/services/ngalert/state/template_test.go b/pkg/services/ngalert/state/template_test.go index 1eef5f7230f..480d2e96043 100644 --- a/pkg/services/ngalert/state/template_test.go +++ b/pkg/services/ngalert/state/template_test.go @@ -56,10 +56,10 @@ func TestExpandTemplate(t *testing.T) { labels: data.Labels{"instance": "foo"}, expected: "foo is down", }, { - name: "missing label in $labels returns error", - text: "{{ $labels.instance }} is down", - labels: data.Labels{}, - expectedError: errors.New("error executing template __alert_test: template: __alert_test:1:86: executing \"__alert_test\" at <$labels.instance>: map has no entry for key \"instance\""), + name: "missing label in $labels returns ", + text: "{{ $labels.instance }} is down", + labels: data.Labels{}, + expected: " is down", }, { name: "values are expanded into $values", text: "{{ $values.A.Labels.instance }} has value {{ $values.A }}", @@ -87,7 +87,7 @@ func TestExpandTemplate(t *testing.T) { }, expected: "foo has value 1.1", }, { - name: "missing label in $values returns error", + name: "missing label in $values returns ", text: "{{ $values.A.Labels.instance }} has value {{ $values.A }}", alertInstance: eval.Result{ Values: map[string]eval.NumberValueCapture{ @@ -98,7 +98,7 @@ func TestExpandTemplate(t *testing.T) { }, }, }, - expectedError: errors.New("error executing template __alert_test: template: __alert_test:1:86: executing \"__alert_test\" at <$values.A.Labels.instance>: map has no entry for key \"instance\""), + expected: " has value 1", }, { name: "missing value in $values is returned as NaN", text: "{{ $values.A.Labels.instance }} has value {{ $values.A }}",