CloudWatch: Fix handling region for legacy alerts (#109217)

This commit is contained in:
Isabella Siu
2025-08-06 15:40:20 -04:00
committed by GitHub
parent 295ace108d
commit 2bf9aea8ef
8 changed files with 121 additions and 14 deletions
@@ -382,7 +382,7 @@ func (q *CloudWatchQuery) validateAndSetDefaults(refId string, metricsDataQuery
}
}
if q.Region == defaultRegion {
if q.Region == defaultRegion || q.Region == "" {
q.Region = defaultRegionValue
}
@@ -1195,7 +1195,7 @@ func Test_ParseMetricDataQueries_account_Id(t *testing.T) {
}
func Test_ParseMetricDataQueries_default_region(t *testing.T) {
t.Run("default region is used when when region not set", func(t *testing.T) {
t.Run("default region is used when when region is default", func(t *testing.T) {
query := []backend.DataQuery{
{
JSON: json.RawMessage(`{
@@ -1216,6 +1216,33 @@ func Test_ParseMetricDataQueries_default_region(t *testing.T) {
},
}
region := "us-east-2"
res, err := ParseMetricDataQueries(query, time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour), region, logger, false)
assert.NoError(t, err)
require.Len(t, res, 1)
require.NotNil(t, res[0])
assert.Equal(t, region, res[0].Region)
})
t.Run("default region is used when when region not set", func(t *testing.T) {
query := []backend.DataQuery{
{
JSON: json.RawMessage(`{
"refId":"ref1",
"namespace":"ec2",
"metricName":"CPUUtilization",
"id": "",
"expression": "",
"dimensions":{
"InstanceId":["test"],
"InstanceType":["test2"]
},
"statistic":"Average",
"period":"900",
"hide":false
}`),
},
}
region := "us-east-2"
res, err := ParseMetricDataQueries(query, time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour), region, logger, false)
assert.NoError(t, err)