diff --git a/observability-lib/grafana/builder_test.go b/observability-lib/grafana/builder_test.go index 7c4c21386..d333f753b 100644 --- a/observability-lib/grafana/builder_test.go +++ b/observability-lib/grafana/builder_test.go @@ -154,6 +154,37 @@ func TestBuilder_AddVars(t *testing.T) { } require.Len(t, o.Dashboard.Templating.List, 1) }) + + t.Run("AddVars adds variables with AllValue to the dashboard", func(t *testing.T) { + builder := grafana.NewBuilder(&grafana.BuilderOptions{ + Name: "Dashboard Name", + }) + + variable := grafana.NewQueryVariable(&grafana.QueryVariableOptions{ + VariableOption: &grafana.VariableOption{ + Name: "Variable Name", + Label: "Variable Label", + }, + Query: "query", + Datasource: grafana.NewDataSource("Prometheus", "").Name, + IncludeAll: true, + AllValue: ".*", + }) + + builder.AddVars(variable) + o, err := builder.Build() + if err != nil { + t.Errorf("Error building dashboard: %v", err) + } + require.Len(t, o.Dashboard.Templating.List, 1) + + // Verify the AllValue is set correctly + varModel := o.Dashboard.Templating.List[0] + require.NotNil(t, varModel.AllValue) + require.Equal(t, ".*", *varModel.AllValue) + require.NotNil(t, varModel.IncludeAll) + require.True(t, *varModel.IncludeAll) + }) } func TestBuilder_AddRow(t *testing.T) { diff --git a/observability-lib/grafana/variables.go b/observability-lib/grafana/variables.go index 62b1bc863..d68cab697 100644 --- a/observability-lib/grafana/variables.go +++ b/observability-lib/grafana/variables.go @@ -87,6 +87,7 @@ type QueryVariableOptions struct { Sort dashboard.VariableSort Refresh *dashboard.VariableRefresh IncludeAll bool + AllValue string QueryWithType map[string]any } @@ -112,7 +113,8 @@ func NewQueryVariable(options *QueryVariableOptions) *dashboard.QueryVariableBui Sort(options.Sort). Refresh(*options.Refresh). Multi(options.Multi). - IncludeAll(options.IncludeAll) + IncludeAll(options.IncludeAll). + AllValue(options.AllValue) if options.Query != "" { variable.Query(dashboard.StringOrMap{String: cog.ToPtr[string](options.Query)})