diff --git a/plugins/inputs/cloudwatch/cloudwatch.go b/plugins/inputs/cloudwatch/cloudwatch.go index 1cd795830..7dbd3c7fa 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 }