diff --git a/pkg/tsdb/cloudwatch/response_parser.go b/pkg/tsdb/cloudwatch/response_parser.go index 38ef6906c46..2730de5e8f0 100644 --- a/pkg/tsdb/cloudwatch/response_parser.go +++ b/pkg/tsdb/cloudwatch/response_parser.go @@ -65,7 +65,14 @@ func (e *CloudWatchExecutor) parseResponse(metricDataOutputs []*cloudwatch.GetMe func parseGetMetricDataTimeSeries(metricDataResults map[string]*cloudwatch.MetricDataResult, query *cloudWatchQuery) (*tsdb.TimeSeriesSlice, bool, error) { result := tsdb.TimeSeriesSlice{} partialData := false - for label, metricDataResult := range metricDataResults { + metricDataResultLabels := make([]string, 0) + for k := range metricDataResults { + metricDataResultLabels = append(metricDataResultLabels, k) + } + sort.Strings(metricDataResultLabels) + + for _, label := range metricDataResultLabels { + metricDataResult := metricDataResults[label] if *metricDataResult.StatusCode != "Complete" { partialData = true }