From b80f73bc1e1a9571a02b7717535d8f11f509e550 Mon Sep 17 00:00:00 2001 From: Doron-Bargo <62555360+Doron-Bargo@users.noreply.github.com> Date: Wed, 15 Sep 2021 00:06:11 +0300 Subject: [PATCH] fix: pagination error on cloudwatch plugin (#9693) (cherry picked from commit 646273abe0c61bd9d9bb7ca04deadfe698c03f73) --- plugins/inputs/cloudwatch/cloudwatch.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/inputs/cloudwatch/cloudwatch.go b/plugins/inputs/cloudwatch/cloudwatch.go index 1cd7958301611..7dbd3c7faa7be 100644 --- a/plugins/inputs/cloudwatch/cloudwatch.go +++ b/plugins/inputs/cloudwatch/cloudwatch.go @@ -410,18 +410,21 @@ func (c *CloudWatch) fetchNamespaceMetrics() ([]*cwClient.Metric, error) { default: recentlyActive = nil } - params = &cwClient.ListMetricsInput{ - Dimensions: []*cwClient.DimensionFilter{}, - NextToken: token, - MetricName: nil, - RecentlyActive: recentlyActive, - } + for _, namespace := range c.Namespaces { - params.Namespace = aws.String(namespace) + + params = &cwClient.ListMetricsInput{ + Dimensions: []*cwClient.DimensionFilter{}, + NextToken: token, + MetricName: nil, + RecentlyActive: recentlyActive, + Namespace: aws.String(namespace), + } + for { resp, err := c.client.ListMetrics(params) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to list metrics with params per namespace: %v", err) } metrics = append(metrics, resp.Metrics...) @@ -432,7 +435,6 @@ func (c *CloudWatch) fetchNamespaceMetrics() ([]*cwClient.Metric, error) { params.NextToken = resp.NextToken } } - return metrics, nil }