From 1ab2f844a2bbfb9cce0567405fbcd0d604e6977e Mon Sep 17 00:00:00 2001 From: Nikolay Date: Fri, 17 Sep 2021 18:00:37 +0300 Subject: [PATCH] makes filters optional for ec2 api requests (#1627) filters can be applied only for DescribeInstances requests, like prometheus does. related issue https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1626 --- lib/promscrape/discovery/ec2/api.go | 6 +++--- lib/promscrape/discovery/ec2/instance.go | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/promscrape/discovery/ec2/api.go b/lib/promscrape/discovery/ec2/api.go index e72c702239..954bfc3459 100644 --- a/lib/promscrape/discovery/ec2/api.go +++ b/lib/promscrape/discovery/ec2/api.go @@ -414,14 +414,14 @@ func getSTSAPIResponse(action, stsEndpoint, roleARN string, reqBuilder func(apiU } // getEC2APIResponse performs EC2 API request with given action. -func getEC2APIResponse(cfg *apiConfig, action, nextPageToken string) ([]byte, error) { +func getEC2APIResponse(cfg *apiConfig, action, filters, nextPageToken string) ([]byte, error) { ac, err := cfg.getFreshAPICredentials() if err != nil { return nil, fmt.Errorf("cannot obtain fresh credentials for EC2 API: %w", err) } apiURL := fmt.Sprintf("%s?Action=%s", cfg.ec2Endpoint, url.QueryEscape(action)) - if len(cfg.filters) > 0 { - apiURL += "&" + cfg.filters + if len(filters) > 0 { + apiURL += "&" + filters } if len(nextPageToken) > 0 { apiURL += fmt.Sprintf("&NextToken=%s", url.QueryEscape(nextPageToken)) diff --git a/lib/promscrape/discovery/ec2/instance.go b/lib/promscrape/discovery/ec2/instance.go index 37425e2d2e..b362119c1a 100644 --- a/lib/promscrape/discovery/ec2/instance.go +++ b/lib/promscrape/discovery/ec2/instance.go @@ -30,7 +30,7 @@ func getReservations(cfg *apiConfig) ([]Reservation, error) { var rs []Reservation pageToken := "" for { - data, err := getEC2APIResponse(cfg, "DescribeInstances", pageToken) + data, err := getEC2APIResponse(cfg, "DescribeInstances", cfg.filters, pageToken) if err != nil { return nil, fmt.Errorf("cannot obtain instances: %w", err) } @@ -155,7 +155,7 @@ func getAZMap(cfg *apiConfig) map[string]string { func getAvailabilityZones(cfg *apiConfig) ([]AvailabilityZone, error) { // See https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html - data, err := getEC2APIResponse(cfg, "DescribeAvailabilityZones", "") + data, err := getEC2APIResponse(cfg, "DescribeAvailabilityZones", "", "") if err != nil { return nil, fmt.Errorf("cannot obtain availability zones: %w", err) }