Skip to content

Commit 4fec8ff

Browse files
seongpil0948mjlshenatoulme
authored
[internal/aws] migrate to AWS v2 SDK (#40123)
#### Description aws-sdk-go is being [deprecated on July 31, 2025](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025/). this PR updates `internal/aws/awsutil` to aws-sdk-go-v2 and Update the modules that depend on them has improved the existing partition, sts related logic <!-- Issue number (e.g. #1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes #37728 <!--Describe what testing was performed and which tests were added.--> #### Testing I converted the existing unit test to aws-sdk-go-v2 as well, imorove partition related test <!--Describe the documentation added.--> #### Documentation - [internal endpoints module](https://pkg.go.dev/github.com/aws/[email protected]/internal/endpoints) --------- Co-authored-by: Michael Shen <[email protected]> Co-authored-by: Antoine Toulme <[email protected]>
1 parent 55bfa83 commit 4fec8ff

File tree

26 files changed

+243
-473
lines changed

26 files changed

+243
-473
lines changed

exporter/awscloudwatchlogsexporter/exporter.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,14 @@ type emfMetadata struct {
4646
LogStreamName string `json:"log_stream_name,omitempty"`
4747
}
4848

49-
func newCwLogsPusher(expConfig *Config, params exp.Settings) (*cwlExporter, error) {
49+
func newCwLogsPusher(ctx context.Context, expConfig *Config, params exp.Settings) (*cwlExporter, error) {
5050
if expConfig == nil {
5151
return nil, errors.New("awscloudwatchlogs exporter config is nil")
5252
}
5353

5454
expConfig.logger = params.Logger
5555

56-
// create AWS session
57-
awsConfig, err := awsutil.GetAWSConfig(params.Logger, &expConfig.AWSSessionSettings)
56+
awsConfig, err := awsutil.GetAWSConfig(ctx, params.Logger, &expConfig.AWSSessionSettings)
5857
if err != nil {
5958
return nil, err
6059
}
@@ -79,14 +78,14 @@ func newCwLogsPusher(expConfig *Config, params exp.Settings) (*cwlExporter, erro
7978
return logsExporter, nil
8079
}
8180

82-
func newCwLogsExporter(config component.Config, params exp.Settings) (exp.Logs, error) {
81+
func newCwLogsExporter(ctx context.Context, config component.Config, params exp.Settings) (exp.Logs, error) {
8382
expConfig := config.(*Config)
84-
logsPusher, err := newCwLogsPusher(expConfig, params)
83+
logsPusher, err := newCwLogsPusher(ctx, expConfig, params)
8584
if err != nil {
8685
return nil, err
8786
}
8887
return exporterhelper.NewLogs(
89-
context.TODO(),
88+
ctx,
9089
params,
9190
config,
9291
logsPusher.consumeLogs,

exporter/awscloudwatchlogsexporter/exporter_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ func TestConsumeLogs(t *testing.T) {
343343
expCfg.LogGroupName = "testGroup"
344344
expCfg.LogStreamName = "testStream"
345345
expCfg.MaxRetries = 0
346-
exp, err := newCwLogsPusher(expCfg, exportertest.NewNopSettings(metadata.Type))
346+
exp, err := newCwLogsPusher(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
347347

348348
testcases := []struct {
349349
id string
@@ -418,7 +418,9 @@ func TestNewExporterWithoutRegionErr(t *testing.T) {
418418
factory := NewFactory()
419419
expCfg := factory.CreateDefaultConfig().(*Config)
420420
expCfg.MaxRetries = 0
421-
exp, err := newCwLogsExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
421+
422+
ctx := context.Background()
423+
exp, err := newCwLogsExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
422424
assert.Nil(t, exp)
423425
assert.Error(t, err)
424426
}

exporter/awscloudwatchlogsexporter/factory.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ func createDefaultConfig() component.Config {
3939
}
4040
}
4141

42-
func createLogsExporter(_ context.Context, params exporter.Settings, config component.Config) (exporter.Logs, error) {
42+
func createLogsExporter(ctx context.Context, params exporter.Settings, config component.Config) (exporter.Logs, error) {
4343
expConfig, ok := config.(*Config)
4444
if !ok {
4545
return nil, errors.New("invalid configuration type; can't cast to awscloudwatchlogsexporter.Config")
4646
}
47-
return newCwLogsExporter(expConfig, params)
47+
return newCwLogsExporter(ctx, expConfig, params)
4848
}

exporter/awscloudwatchlogsexporter/go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ require (
2525
)
2626

2727
require (
28-
github.com/aws/aws-sdk-go v1.55.7 // indirect
2928
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
3029
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
3130
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
@@ -47,7 +46,6 @@ require (
4746
github.com/gobwas/glob v0.2.3 // indirect
4847
github.com/gogo/protobuf v1.3.2 // indirect
4948
github.com/hashicorp/go-version v1.7.0 // indirect
50-
github.com/jmespath/go-jmespath v0.4.0 // indirect
5149
github.com/json-iterator/go v1.1.12 // indirect
5250
github.com/knadh/koanf/maps v0.1.2 // indirect
5351
github.com/knadh/koanf/providers/confmap v1.0.0 // indirect

exporter/awscloudwatchlogsexporter/go.sum

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/awsemfexporter/emf_exporter.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,14 @@ type emfExporter struct {
4545
}
4646

4747
// newEmfExporter creates a new exporter using exporterhelper
48-
func newEmfExporter(config *Config, set exporter.Settings) (*emfExporter, error) {
48+
func newEmfExporter(ctx context.Context, config *Config, set exporter.Settings) (*emfExporter, error) {
4949
if config == nil {
5050
return nil, errors.New("emf exporter config is nil")
5151
}
5252

5353
config.logger = set.Logger
5454

55-
// create AWS session
56-
awsConfig, err := awsutil.GetAWSConfig(set.Logger, &config.AWSSessionSettings)
55+
awsConfig, err := awsutil.GetAWSConfig(ctx, set.Logger, &config.AWSSessionSettings)
5756
if err != nil {
5857
return nil, err
5958
}

exporter/awsemfexporter/emf_exporter_test.go

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func TestConsumeMetrics(t *testing.T) {
6262
expCfg := factory.CreateDefaultConfig().(*Config)
6363
expCfg.Region = "us-west-2"
6464
expCfg.MaxRetries = 0
65-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
65+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
6666
assert.NoError(t, err)
6767
assert.NotNil(t, exp)
6868

@@ -103,7 +103,7 @@ func TestConsumeMetricsWithNaNValues(t *testing.T) {
103103
expCfg.Region = "us-west-2"
104104
expCfg.MaxRetries = 0
105105
expCfg.OutputDestination = "stdout"
106-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
106+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
107107
assert.NoError(t, err)
108108
assert.NotNil(t, exp)
109109
md := tc.generateFunc(tc.testName)
@@ -142,7 +142,7 @@ func TestConsumeMetricsWithInfValues(t *testing.T) {
142142
expCfg.Region = "us-west-2"
143143
expCfg.MaxRetries = 0
144144
expCfg.OutputDestination = "stdout"
145-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
145+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
146146
assert.NoError(t, err)
147147
assert.NotNil(t, exp)
148148
md := tc.generateFunc(tc.testName)
@@ -160,7 +160,7 @@ func TestConsumeMetricsWithOutputDestination(t *testing.T) {
160160
expCfg.Region = "us-west-2"
161161
expCfg.MaxRetries = 0
162162
expCfg.OutputDestination = "stdout"
163-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
163+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
164164
assert.NoError(t, err)
165165
assert.NotNil(t, exp)
166166

@@ -181,7 +181,7 @@ func TestConsumeMetricsWithLogGroupStreamConfig(t *testing.T) {
181181
expCfg.MaxRetries = defaultRetryCount
182182
expCfg.LogGroupName = "test-logGroupName"
183183
expCfg.LogStreamName = "test-logStreamName"
184-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
184+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
185185
assert.NoError(t, err)
186186
assert.NotNil(t, exp)
187187

@@ -208,7 +208,7 @@ func TestConsumeMetricsWithLogGroupStreamValidPlaceholder(t *testing.T) {
208208
expCfg.MaxRetries = defaultRetryCount
209209
expCfg.LogGroupName = "/aws/ecs/containerinsights/{ClusterName}/performance"
210210
expCfg.LogStreamName = "{TaskId}"
211-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
211+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
212212
assert.NoError(t, err)
213213
assert.NotNil(t, exp)
214214

@@ -239,7 +239,7 @@ func TestConsumeMetricsWithOnlyLogStreamPlaceholder(t *testing.T) {
239239
expCfg.MaxRetries = defaultRetryCount
240240
expCfg.LogGroupName = "test-logGroupName"
241241
expCfg.LogStreamName = "{TaskId}"
242-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
242+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
243243
assert.NoError(t, err)
244244
assert.NotNil(t, exp)
245245

@@ -270,7 +270,7 @@ func TestConsumeMetricsWithWrongPlaceholder(t *testing.T) {
270270
expCfg.MaxRetries = defaultRetryCount
271271
expCfg.LogGroupName = "test-logGroupName"
272272
expCfg.LogStreamName = "{WrongKey}"
273-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
273+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
274274
assert.NoError(t, err)
275275
assert.NotNil(t, exp)
276276

@@ -301,7 +301,7 @@ func TestPushMetricsDataWithErr(t *testing.T) {
301301
expCfg.MaxRetries = 0
302302
expCfg.LogGroupName = "test-logGroupName"
303303
expCfg.LogStreamName = "test-logStreamName"
304-
exp, err := newEmfExporter(expCfg, exportertest.NewNopSettings(metadata.Type))
304+
exp, err := newEmfExporter(ctx, expCfg, exportertest.NewNopSettings(metadata.Type))
305305
assert.NoError(t, err)
306306
assert.NotNil(t, exp)
307307

@@ -333,7 +333,8 @@ func TestNewExporterWithoutConfig(t *testing.T) {
333333
settings := exportertest.NewNopSettings(metadata.Type)
334334
t.Setenv("AWS_STS_REGIONAL_ENDPOINTS", "fake")
335335

336-
exp, err := newEmfExporter(expCfg, settings)
336+
ctx := context.Background()
337+
exp, err := newEmfExporter(ctx, expCfg, settings)
337338
assert.Error(t, err)
338339
assert.Nil(t, exp)
339340
assert.Equal(t, expCfg.logger, settings.Logger)
@@ -370,7 +371,8 @@ func TestNewExporterWithMetricDeclarations(t *testing.T) {
370371
params := exportertest.NewNopSettings(metadata.Type)
371372
params.Logger = zap.New(obs)
372373

373-
exp, err := newEmfExporter(expCfg, params)
374+
ctx := context.Background()
375+
exp, err := newEmfExporter(ctx, expCfg, params)
374376
assert.NoError(t, err)
375377
assert.NotNil(t, exp)
376378
err = expCfg.Validate()
@@ -403,7 +405,8 @@ func TestNewExporterWithMetricDeclarations(t *testing.T) {
403405
}
404406

405407
func TestNewExporterWithoutSession(t *testing.T) {
406-
exp, err := newEmfExporter(nil, exportertest.NewNopSettings(metadata.Type))
408+
ctx := context.Background()
409+
exp, err := newEmfExporter(ctx, nil, exportertest.NewNopSettings(metadata.Type))
407410
assert.Error(t, err)
408411
assert.Nil(t, exp)
409412
}
@@ -431,9 +434,9 @@ func TestNewEmfExporterWithoutConfig(t *testing.T) {
431434
factory := NewFactory()
432435
expCfg := factory.CreateDefaultConfig().(*Config)
433436
settings := exportertest.NewNopSettings(metadata.Type)
434-
t.Setenv("AWS_STS_REGIONAL_ENDPOINTS", "fake")
435437

436-
exp, err := newEmfExporter(expCfg, settings)
438+
ctx := context.Background()
439+
exp, err := newEmfExporter(ctx, expCfg, settings)
437440
assert.Error(t, err)
438441
assert.Nil(t, exp)
439442
assert.Equal(t, expCfg.logger, settings.Logger)

exporter/awsemfexporter/factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func createDefaultConfig() component.Config {
5555
func createMetricsExporter(ctx context.Context, params exporter.Settings, config component.Config) (exporter.Metrics, error) {
5656
expCfg := config.(*Config)
5757

58-
emfExp, err := newEmfExporter(expCfg, params)
58+
emfExp, err := newEmfExporter(ctx, expCfg, params)
5959
if err != nil {
6060
return nil, err
6161
}

exporter/awsemfexporter/go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ require (
2727
)
2828

2929
require (
30-
github.com/aws/aws-sdk-go v1.55.7 // indirect
3130
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
3231
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
3332
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
@@ -50,7 +49,6 @@ require (
5049
github.com/gobwas/glob v0.2.3 // indirect
5150
github.com/gogo/protobuf v1.3.2 // indirect
5251
github.com/hashicorp/go-version v1.7.0 // indirect
53-
github.com/jmespath/go-jmespath v0.4.0 // indirect
5452
github.com/json-iterator/go v1.1.12 // indirect
5553
github.com/knadh/koanf/maps v0.1.2 // indirect
5654
github.com/knadh/koanf/providers/confmap v1.0.0 // indirect

exporter/awsemfexporter/go.sum

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/awsxrayexporter/awsxray.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func newTracesExporter(ctx context.Context, cfg *Config, set exporter.Settings,
3333
typeLog := zap.String("type", set.ID.Type().String())
3434
nameLog := zap.String("name", set.ID.String())
3535
logger := set.Logger
36-
awsConfig, err := awsutil.GetAWSConfig(logger, &cfg.AWSSessionSettings)
36+
awsConfig, err := awsutil.GetAWSConfig(ctx, logger, &cfg.AWSSessionSettings)
3737
if err != nil {
3838
return nil, err
3939
}

exporter/awsxrayexporter/awsxray_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ func TestTelemetryEnabled(t *testing.T) {
9090
assert.EqualValues(t, 1, sink.StopCount.Load())
9191
assert.True(t, sink.HasRecording())
9292
got := sink.Rotate()
93-
assert.EqualValues(t, 0, *got.BackendConnectionErrors.HTTPCode4XXCount)
93+
assert.EqualValues(t, 1, *got.BackendConnectionErrors.HTTPCode4XXCount)
94+
assert.EqualValues(t, 0, *got.BackendConnectionErrors.OtherCount)
9495
}
9596

9697
func BenchmarkForTracesExporter(b *testing.B) {

exporter/awsxrayexporter/go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ require (
2525
)
2626

2727
require (
28-
github.com/aws/aws-sdk-go v1.55.7 // indirect
2928
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
3029
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
3130
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
@@ -46,7 +45,6 @@ require (
4645
github.com/gogo/protobuf v1.3.2 // indirect
4746
github.com/google/uuid v1.6.0 // indirect
4847
github.com/hashicorp/go-version v1.7.0 // indirect
49-
github.com/jmespath/go-jmespath v0.4.0 // indirect
5048
github.com/json-iterator/go v1.1.12 // indirect
5149
github.com/knadh/koanf/maps v0.1.2 // indirect
5250
github.com/knadh/koanf/providers/confmap v1.0.0 // indirect

exporter/awsxrayexporter/go.sum

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)