@ -15,6 +15,8 @@ import (
"github.com/grafana/grafana/pkg/tsdb/cloudwatch/utils"
)
var logger = & logtest . Fake { }
func TestCloudWatchQuery ( t * testing . T ) {
t . Run ( "Deeplink" , func ( t * testing . T ) {
t . Run ( "is not generated for MetricQueryTypeQuery" , func ( t * testing . T ) {
@ -317,7 +319,7 @@ func TestRequestParser(t *testing.T) {
} ,
}
migratedQueries , err := ParseMetricDataQueries ( oldQuery , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
migratedQueries , err := ParseMetricDataQueries ( oldQuery , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , migratedQueries , 1 )
require . NotNil ( t , migratedQueries [ 0 ] )
@ -348,7 +350,7 @@ func TestRequestParser(t *testing.T) {
} ,
}
results , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
results , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , results , 1 )
res := results [ 0 ]
@ -391,7 +393,7 @@ func TestRequestParser(t *testing.T) {
} ,
}
results , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
results , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , results , 1 )
res := results [ 0 ]
@ -424,7 +426,7 @@ func TestRequestParser(t *testing.T) {
} ,
}
_ , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
_ , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . Error ( t , err )
assert . Equal ( t , ` error parsing query "", failed to parse dimensions: unknown type as dimension value ` , err . Error ( ) )
@ -453,7 +455,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -485,7 +487,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . Local ( ) . Add ( time . Minute * time . Duration ( 5 ) )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 60 , res [ 0 ] . Period )
@ -495,7 +497,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( 0 , 0 , - 1 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 60 , res [ 0 ] . Period )
@ -504,7 +506,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
t . Run ( "Time range is 2 days" , func ( t * testing . T ) {
to := time . Now ( )
from := to . AddDate ( 0 , 0 , - 2 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 300 , res [ 0 ] . Period )
@ -514,7 +516,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( 0 , 0 , - 7 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 900 , res [ 0 ] . Period )
@ -524,7 +526,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( 0 , 0 , - 30 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 3600 , res [ 0 ] . Period )
@ -534,7 +536,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( 0 , 0 , - 90 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 21600 , res [ 0 ] . Period )
@ -544,7 +546,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( - 1 , 0 , 0 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . Nil ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 21600 , res [ 0 ] . Period )
@ -554,7 +556,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
to := time . Now ( )
from := to . AddDate ( - 2 , 0 , 0 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 86400 , res [ 0 ] . Period )
@ -563,7 +565,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
t . Run ( "Time range is 2 days, but 16 days ago" , func ( t * testing . T ) {
to := time . Now ( ) . AddDate ( 0 , 0 , - 14 )
from := to . AddDate ( 0 , 0 , - 2 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 300 , res [ 0 ] . Period )
@ -572,7 +574,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
t . Run ( "Time range is 2 days, but 90 days ago" , func ( t * testing . T ) {
to := time . Now ( ) . AddDate ( 0 , 0 , - 88 )
from := to . AddDate ( 0 , 0 , - 2 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 3600 , res [ 0 ] . Period )
@ -581,7 +583,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
t . Run ( "Time range is 2 days, but 456 days ago" , func ( t * testing . T ) {
to := time . Now ( ) . AddDate ( 0 , 0 , - 454 )
from := to . AddDate ( 0 , 0 , - 2 )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , from , to , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
assert . Equal ( t , 21600 , res [ 0 ] . Period )
@ -596,7 +598,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
} ` ) ,
} ,
}
_ , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
_ , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . Error ( t , err )
assert . Equal ( t , ` error parsing query "", failed to parse period as duration: time: invalid duration "invalid" ` , err . Error ( ) )
} )
@ -611,7 +613,7 @@ func Test_ParseMetricDataQueries_periods(t *testing.T) {
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
@ -698,13 +700,13 @@ func Test_ParseMetricDataQueries_query_type_and_metric_editor_mode_and_GMD_query
) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
assert . Equal ( t , tc . expectedMetricQueryType , res [ 0 ] . MetricQueryType )
assert . Equal ( t , tc . expectedMetricEditorMode , res [ 0 ] . MetricEditorMode )
assert . Equal ( t , tc . expectedGMDApiMode , res [ 0 ] . GetGMDAPIMode ( & logtest . Fake { } ) )
assert . Equal ( t , tc . expectedGMDApiMode , res [ 0 ] . GetGet Metric Data APIMode ( ) )
} )
}
}
@ -724,7 +726,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -745,7 +747,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -766,7 +768,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -785,7 +787,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -806,7 +808,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -827,7 +829,7 @@ func Test_ParseMetricDataQueries_hide_and_ReturnData(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -850,7 +852,7 @@ func Test_ParseMetricDataQueries_ID(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -871,7 +873,7 @@ func Test_ParseMetricDataQueries_ID(t *testing.T) {
} ` ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , "us-east-2" , logger , false , false )
require . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -898,7 +900,7 @@ func Test_ParseMetricDataQueries_sets_label_when_label_is_present_in_json_query(
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , true , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , true , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
@ -962,7 +964,7 @@ func Test_ParseMetricDataQueries_migrate_alias_to_label(t *testing.T) {
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , true , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , true , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
@ -1009,7 +1011,7 @@ func Test_ParseMetricDataQueries_migrate_alias_to_label(t *testing.T) {
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , true , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , true , false )
assert . NoError ( t , err )
require . Len ( t , res , 2 )
@ -1078,7 +1080,7 @@ func Test_ParseMetricDataQueries_migrate_alias_to_label(t *testing.T) {
} ` , tc . labelJson ) ) ,
} ,
}
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , tc . dynamicLabelsFeatureToggleEnabled , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , tc . dynamicLabelsFeatureToggleEnabled , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
@ -1105,7 +1107,7 @@ func Test_ParseMetricDataQueries_statistics_and_query_type_validation_and_MatchE
{
JSON : [ ] byte ( "{}" ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . Error ( t , err )
assert . Equal ( t , ` error parsing query "", query must have either statistic or statistics field ` , err . Error ( ) )
@ -1118,7 +1120,7 @@ func Test_ParseMetricDataQueries_statistics_and_query_type_validation_and_MatchE
{
JSON : [ ] byte ( ` { "type":"some other type", "statistic":"Average", "matchExact":false} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
assert . Empty ( t , actual )
@ -1130,7 +1132,7 @@ func Test_ParseMetricDataQueries_statistics_and_query_type_validation_and_MatchE
{
JSON : [ ] byte ( ` { "statistic":"Average"} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
assert . NotEmpty ( t , actual )
@ -1142,7 +1144,7 @@ func Test_ParseMetricDataQueries_statistics_and_query_type_validation_and_MatchE
{
JSON : [ ] byte ( ` { "statistic":"Average"} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
assert . Len ( t , actual , 1 )
@ -1156,7 +1158,7 @@ func Test_ParseMetricDataQueries_statistics_and_query_type_validation_and_MatchE
{
JSON : [ ] byte ( ` { "statistic":"Average","matchExact":false} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
assert . Len ( t , actual , 1 )
@ -1172,7 +1174,7 @@ func Test_ParseMetricDataQueries_account_Id(t *testing.T) {
{
JSON : [ ] byte ( ` { "accountId":"some account id", "statistic":"Average"} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , true )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , true )
assert . NoError ( t , err )
require . Len ( t , actual , 1 )
@ -1187,7 +1189,7 @@ func Test_ParseMetricDataQueries_account_Id(t *testing.T) {
{
JSON : [ ] byte ( ` { "accountId":"some account id", "statistic":"Average"} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-2" , false , false )
} , time . Now ( ) , time . Now ( ) , "us-east-2" , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , actual , 1 )
@ -1219,10 +1221,82 @@ 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 , false , false )
res , err := ParseMetricDataQueries ( query , time . Now ( ) . Add ( - 2 * time . Hour ) , time . Now ( ) . Add ( - time . Hour ) , region , logger , false , false )
assert . NoError ( t , err )
require . Len ( t , res , 1 )
require . NotNil ( t , res [ 0 ] )
assert . Equal ( t , region , res [ 0 ] . Region )
} )
}
func Test_ParseMetricDataQueries_ApplyMacros ( t * testing . T ) {
t . Run ( "should expand $__period_auto macro when a metric search code query is used" , func ( t * testing . T ) {
timeNow := time . Now ( )
testCases := [ ] struct {
startTime time . Time
expectedPeriod string
} {
{
startTime : timeNow . Add ( - 2 * time . Hour ) ,
expectedPeriod : "60" ,
} ,
{
startTime : timeNow . Add ( - 100 * time . Hour ) ,
expectedPeriod : "300" ,
} ,
{
startTime : timeNow . Add ( - 1000 * time . Hour ) ,
expectedPeriod : "3600" ,
} ,
}
for _ , tc := range testCases {
t . Run ( fmt . Sprintf ( "should expand $__period_auto macro to %s when a metric search code query is used" , tc . expectedPeriod ) , func ( t * testing . T ) {
actual , err := ParseMetricDataQueries (
[ ] backend . DataQuery {
{
JSON : [ ] byte ( ` {
"refId" : "A" ,
"region" : "us-east-1" ,
"namespace" : "ec2" ,
"metricName" : "CPUUtilization" ,
"alias" : "{{period}} {{any_other_word}}" ,
"dimensions" : { "InstanceId" : [ "test" ] } ,
"statistic" : "Average" ,
"period" : "600" ,
"hide" : false ,
"expression" : "SEARCH('{AWS/EC2,InstanceId}', 'Average', $__period_auto)" ,
"metricQueryType" : 0 ,
"metricEditorMode" : 1
} ` ) ,
} ,
} , tc . startTime , time . Now ( ) , "us-east-1" , logger , false , false )
assert . NoError ( t , err )
assert . Equal ( t , fmt . Sprintf ( "SEARCH('{AWS/EC2,InstanceId}', 'Average', %s)" , tc . expectedPeriod ) , actual [ 0 ] . Expression )
} )
}
} )
t . Run ( "should not expand __period_auto macro if it's a metric query code query" , func ( t * testing . T ) {
actual , err := ParseMetricDataQueries (
[ ] backend . DataQuery {
{
JSON : [ ] byte ( ` {
"refId" : "A" ,
"region" : "us-east-1" ,
"namespace" : "ec2" ,
"metricName" : "CPUUtilization" ,
"alias" : "{{period}} {{any_other_word}}" ,
"dimensions" : { "InstanceId" : [ "test" ] } ,
"statistic" : "Average" ,
"period" : "600" ,
"hide" : false ,
"expression" : "SEARCH('{AWS/EC2,InstanceId}', 'Average', $__period_auto)" ,
"metricQueryType" : 1 ,
"metricEditorMode" : 1
} ` ) ,
} ,
} , time . Now ( ) , time . Now ( ) , "us-east-1" , logger , false , false )
assert . NoError ( t , err )
assert . Equal ( t , "SEARCH('{AWS/EC2,InstanceId}', 'Average', $__period_auto)" , actual [ 0 ] . Expression )
} )
}