Skip to content

Commit a0646d0

Browse files
authored
Merge pull request #679 from SumoLogic/zzhou-add-dashoard-query-props
DASH-1966: Add TimeSource and Search Query Properties to Dashboard Terrraform
2 parents 26e16fc + eff1336 commit a0646d0

File tree

4 files changed

+61
-6
lines changed

4 files changed

+61
-6
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
## 2.31.3 (Unreleased)
1+
## 2.31.4 (Unreleased)
22

33

4+
## 2.31.3 (August 28, 2024)
5+
ENHANCEMENTS:
6+
* Add time source and parse mode to dashboard search panel query (GH-679)
7+
48
## 2.31.2 (August 2, 2024)
59
ENHANCEMENTS:
610
* Add IsIncludedInDefaultSearch field to partition resource (GH-674)

sumologic/resource_sumologic_dashboard.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,28 @@ func getSumoSearchPanelQuerySchema() map[string]*schema.Schema {
361361
Schema: getMetricsQueryDataSchema(),
362362
},
363363
},
364+
"parse_mode": {
365+
Type: schema.TypeString,
366+
Optional: true,
367+
Default: "Auto",
368+
ValidateFunc: validation.StringInSlice([]string{"Auto", "Manual"}, false),
369+
},
370+
"time_source": {
371+
Type: schema.TypeString,
372+
Optional: true,
373+
Default: "Message",
374+
ValidateFunc: validation.StringInSlice([]string{"Message", "Receipt"}, false),
375+
},
376+
"transient": {
377+
Type: schema.TypeBool,
378+
Optional: true,
379+
Default: false,
380+
},
381+
"output_cardinality_limit": {
382+
Type: schema.TypeInt,
383+
Optional: true,
384+
Default: 1000,
385+
},
364386
}
365387
}
366388

@@ -829,6 +851,18 @@ func getSearchPanelQuery(tfQuery map[string]interface{}) SearchPanelQuery {
829851
query.MetricsQueryData = getMetricsQueryData(tfQueryData[0].(map[string]interface{}))
830852
}
831853
}
854+
if val, ok := tfQuery["parse_mode"]; ok {
855+
query.ParseMode = val.(string)
856+
}
857+
if val, ok := tfQuery["time_source"]; ok {
858+
query.TimeSource = val.(string)
859+
}
860+
if val, ok := tfQuery["transient"]; ok {
861+
query.Transient = val.(bool)
862+
}
863+
if val, ok := tfQuery["output_cardinality_limit"]; ok {
864+
query.OutputCardinalityLimit = val.(int)
865+
}
832866

833867
return query
834868
}
@@ -1274,6 +1308,18 @@ func getTerraformSearchPanelQuery(queries []interface{}) []map[string]interface{
12741308
tfPanelQueries[i]["metrics_query_data"] =
12751309
getTerraformMetricsQueryDataScheme(metricsQueryData.(map[string]interface{}))
12761310
}
1311+
if parseMode, ok := query["parseMode"]; ok {
1312+
tfPanelQueries[i]["parse_mode"] = parseMode
1313+
}
1314+
if timeSource, ok := query["timeSource"]; ok {
1315+
tfPanelQueries[i]["time_source"] = timeSource
1316+
}
1317+
if transient, ok := query["transient"]; ok {
1318+
tfPanelQueries[i]["transient"] = transient
1319+
}
1320+
if outputCardinalityLimit, ok := query["outputCardinalityLimit"]; ok {
1321+
tfPanelQueries[i]["output_cardinality_limit"] = outputCardinalityLimit
1322+
}
12771323
}
12781324
return tfPanelQueries
12791325
}

sumologic/resource_sumologic_dashboard_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@ func dashboardUpdateConfig(title string, description string, theme string, refre
590590
query_string = "%s"
591591
query_type = "Logs"
592592
query_key = "%s"
593+
time_source = "Receipt"
593594
}
594595
time_range {
595596
begin_bounded_time_range {

sumologic/sumologic_dashboard.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,15 @@ type ServiceMapPanel struct {
126126
}
127127

128128
type SearchPanelQuery struct {
129-
QueryString string `json:"queryString"`
130-
QueryType string `json:"queryType"`
131-
QueryKey string `json:"queryKey"`
132-
MetricsQueryMode string `json:"metricsQueryMode,omitempty"`
133-
MetricsQueryData *MetricsQueryData `json:"metricsQueryData,omitempty"`
129+
QueryString string `json:"queryString"`
130+
QueryType string `json:"queryType"`
131+
QueryKey string `json:"queryKey"`
132+
MetricsQueryMode string `json:"metricsQueryMode,omitempty"`
133+
MetricsQueryData *MetricsQueryData `json:"metricsQueryData,omitempty"`
134+
ParseMode string `json:"parseMode,omitempty"`
135+
TimeSource string `json:"timeSource,omitempty"`
136+
Transient bool `json:"transient,omitempty"`
137+
OutputCardinalityLimit int `json:"outputCardinalityLimit,omitempty"`
134138
}
135139

136140
type MetricsQueryData struct {

0 commit comments

Comments
 (0)