@@ -6,6 +6,7 @@ package aws
66
77import (
88 "context"
9+ "fmt"
910 "time"
1011
1112 awssdk "github.com/aws/aws-sdk-go-v2/aws"
@@ -16,7 +17,6 @@ import (
1617 "github.com/aws/aws-sdk-go-v2/service/rds"
1718 "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi"
1819 "github.com/aws/aws-sdk-go-v2/service/sts"
19- "github.com/pkg/errors"
2020
2121 "github.com/elastic/beats/v7/libbeat/common"
2222 "github.com/elastic/beats/v7/metricbeat/mb"
@@ -78,20 +78,22 @@ func NewMetricSet(base mb.BaseMetricSet) (*MetricSet, error) {
7878
7979 awsConfig , err := awscommon .GetAWSCredentials (config .AWSConfig )
8080 if err != nil {
81- return nil , errors . Wrap ( err , "failed to get aws credentials, please check AWS credential in config" )
81+ return nil , fmt . Errorf ( "failed to get aws credentials, please check AWS credential in config: %w" , err )
8282 }
8383
8484 _ , err = awsConfig .Credentials .Retrieve ()
8585 if err != nil {
86- return nil , errors . Wrap ( err , "failed to retrieve aws credentials, please check AWS credential in config" )
86+ return nil , fmt . Errorf ( "failed to retrieve aws credentials, please check AWS credential in config: %w" , err )
8787 }
8888
89+ base .Logger ().Debug ("aws config endpoint = " , config .AWSConfig .Endpoint )
8990 metricSet := MetricSet {
9091 BaseMetricSet : base ,
9192 Period : config .Period ,
9293 Latency : config .Latency ,
9394 AwsConfig : & awsConfig ,
9495 TagsFilter : config .TagsFilter ,
96+ Endpoint : config .AWSConfig .Endpoint ,
9597 }
9698
9799 base .Logger ().Debug ("Metricset level config for period: " , metricSet .Period )
@@ -100,6 +102,9 @@ func NewMetricSet(base mb.BaseMetricSet) (*MetricSet, error) {
100102
101103 // Get IAM account name, set region by aws_partition, default is aws global partition
102104 // refer https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
105+ if config .AWSConfig .AWSPartition != "" && config .AWSConfig .Endpoint != "" {
106+ base .Logger ().Warn ("aws_partition is deprecated. Please use endpoint and regions instead." )
107+ }
103108 switch config .AWSConfig .AWSPartition {
104109 case "aws-cn" :
105110 awsConfig .Region = "cn-north-1"
@@ -109,6 +114,11 @@ func NewMetricSet(base mb.BaseMetricSet) (*MetricSet, error) {
109114 awsConfig .Region = "us-east-1"
110115 }
111116
117+ // If regions in config is not empty, then overwrite the awsConfig.Region
118+ if len (config .Regions ) > 0 {
119+ awsConfig .Region = config .Regions [0 ]
120+ }
121+
112122 // Get IAM account id
113123 svcSts := sts .New (awscommon .EnrichAWSConfigWithEndpoint (
114124 config .AWSConfig .Endpoint , "sts" , "" , awsConfig ))
@@ -151,7 +161,7 @@ func getRegions(svc ec2iface.ClientAPI) (completeRegionsList []string, err error
151161 req := svc .DescribeRegionsRequest (input )
152162 output , err := req .Send (context .TODO ())
153163 if err != nil {
154- err = errors . Wrap ( err , "Failed DescribeRegions" )
164+ err = fmt . Errorf ( "failed DescribeRegions: %w" , err )
155165 return
156166 }
157167 for _ , region := range output .Regions {
0 commit comments