CloudWatch: Migrate to aws-sdk-go-v2 (#103106)

* Cloudwatch: Migrate to aws-sdk-go-v2 (#99643)
* CloudWatch: use PDC fix from new grafana-aws-sdk
This commit is contained in:
Nathan Vērzemnieks
2025-04-01 10:03:06 +02:00
committed by GitHub
parent 3e15459d20
commit a65cc0df93
60 changed files with 1497 additions and 1607 deletions
+23 -34
View File
@@ -1,64 +1,53 @@
package cloudwatch
import (
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/cloudwatch"
"github.com/aws/aws-sdk-go/service/cloudwatch/cloudwatchiface"
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
"github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/oam"
"github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi"
"github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/cloudwatch"
"github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs"
"github.com/aws/aws-sdk-go-v2/service/ec2"
"github.com/aws/aws-sdk-go-v2/service/oam"
"github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi"
"github.com/grafana/grafana/pkg/tsdb/cloudwatch/models"
)
// NewMetricsAPI is a CloudWatch metrics api factory.
// NewCWClient is a CloudWatch metrics api factory.
//
// Stubbable by tests.
var NewMetricsAPI = func(sess *session.Session) models.CloudWatchMetricsAPIProvider {
return cloudwatch.New(sess)
var NewCWClient = func(cfg aws.Config) models.CWClient {
return cloudwatch.NewFromConfig(cfg)
}
// NewLogsAPI is a CloudWatch logs api factory.
//
// Stubbable by tests.
var NewLogsAPI = func(sess *session.Session) models.CloudWatchLogsAPIProvider {
return cloudwatchlogs.New(sess)
var NewLogsAPI = func(cfg aws.Config) models.CloudWatchLogsAPIProvider {
return cloudwatchlogs.NewFromConfig(cfg)
}
// NewOAMAPI is a CloudWatch OAM api factory.
// NewOAMAPI is a CloudWatch OAM API factory
//
// Stubbable by tests.
var NewOAMAPI = func(sess *session.Session) models.OAMAPIProvider {
return oam.New(sess)
var NewOAMAPI = func(cfg aws.Config) models.OAMAPIProvider {
return oam.NewFromConfig(cfg)
}
// NewCWClient is a CloudWatch client factory.
// NewEC2API is a CloudWatch EC2 API factory
//
// Stubbable by tests.
var NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI {
return cloudwatch.New(sess)
// Stubbable by tests
var NewEC2API = func(cfg aws.Config) models.EC2APIProvider {
return ec2.NewFromConfig(cfg)
}
// NewCWLogsClient is a CloudWatch logs client factory.
//
// Stubbable by tests.
var NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI {
return cloudwatchlogs.New(sess)
var NewCWLogsClient = func(cfg aws.Config) models.CWLogsClient {
return cloudwatchlogs.NewFromConfig(cfg)
}
// NewEC2Client is a client factory.
// NewRGTAClient is a ResourceGroupsTaggingAPI Client factory.
//
// Stubbable by tests.
var NewEC2Client = func(provider client.ConfigProvider) models.EC2APIProvider {
return ec2.New(provider)
}
// RGTA client factory.
//
// Stubbable by tests.
var newRGTAClient = func(provider client.ConfigProvider) resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI {
return resourcegroupstaggingapi.New(provider)
var NewRGTAClient = func(cfg aws.Config) resourcegroupstaggingapi.GetResourcesAPIClient {
return resourcegroupstaggingapi.NewFromConfig(cfg)
}