CloudWatch: Refactor to extract DataQuery grouping by region out of request parsing (#57392)

* CloudWatch: Extract request parsing grouping by region from ParseQueries

* Rename ParseQueries to ParseMetricDataQueries
This commit is contained in:
Shirley
2022-10-24 14:57:32 +02:00
committed by GitHub
parent 1bda67ab11
commit 9ebed91eed
5 changed files with 169 additions and 11 deletions
+6 -9
View File
@@ -45,9 +45,10 @@ type metricsDataQuery struct {
Alias string `json:"alias,omitempty"`
}
// ParseQueries parses the json queries and returns a map of cloudWatchQueries by region. The cloudWatchQuery has a 1 to 1 mapping to a query editor row
func ParseQueries(queries []backend.DataQuery, startTime time.Time, endTime time.Time, dynamicLabelsEnabled bool) (map[string][]*CloudWatchQuery, error) {
result := make(map[string][]*CloudWatchQuery)
// ParseMetricDataQueries decodes the metric data queries json, validates, sets default values and returns an array of CloudWatchQueries.
// The CloudWatchQuery has a 1 to 1 mapping to a query editor row
func ParseMetricDataQueries(queries []backend.DataQuery, startTime time.Time, endTime time.Time, dynamicLabelsEnabled bool) ([]*CloudWatchQuery, error) {
var result []*CloudWatchQuery
migratedQueries, err := migrateLegacyQuery(queries, dynamicLabelsEnabled)
if err != nil {
return nil, err
@@ -71,15 +72,11 @@ func ParseQueries(queries []backend.DataQuery, startTime time.Time, endTime time
}
refID := query.RefID
query, err := parseRequestQuery(metricsDataQuery, refID, startTime, endTime)
cwQuery, err := parseRequestQuery(metricsDataQuery, refID, startTime, endTime)
if err != nil {
return nil, &QueryError{Err: err, RefID: refID}
}
if _, exist := result[query.Region]; !exist {
result[query.Region] = []*CloudWatchQuery{}
}
result[query.Region] = append(result[query.Region], query)
result = append(result, cwQuery)
}
return result, nil