Skip to content

Commit c0e0863

Browse files
Make aws sdk v2 the default choice (#1636)
Signed-off-by: Cristian Greco <[email protected]>
1 parent dbe8fc4 commit c0e0863

File tree

3 files changed

+27
-23
lines changed

3 files changed

+27
-23
lines changed

cmd/yace/main.go

+22-18
Original file line numberDiff line numberDiff line change
@@ -265,15 +265,18 @@ func startScraper(c *cli.Context) error {
265265

266266
featureFlags := c.StringSlice(enableFeatureFlag)
267267
s := NewScraper(featureFlags)
268-
var cache cachingFactory = v1.NewFactory(logger, jobsCfg, fips)
268+
269+
var cache cachingFactory
270+
cache, err = v2.NewFactory(logger, jobsCfg, fips)
271+
if err != nil {
272+
return fmt.Errorf("Failed to construct aws sdk v2 client cache: %w", err)
273+
}
274+
275+
// Switch to v1 SDK if feature flag is enabled
269276
for _, featureFlag := range featureFlags {
270-
if featureFlag == config.AwsSdkV2 {
271-
var err error
272-
// Can't override cache while also creating err
273-
cache, err = v2.NewFactory(logger, jobsCfg, fips)
274-
if err != nil {
275-
return fmt.Errorf("failed to construct aws sdk v2 client cache: %w", err)
276-
}
277+
if featureFlag == config.AwsSdkV1 {
278+
cache = v1.NewFactory(logger, jobsCfg, fips)
279+
logger.Info("Using aws sdk v1")
277280
}
278281
}
279282

@@ -321,17 +324,18 @@ func startScraper(c *cli.Context) error {
321324
}
322325

323326
logger.Info("Reset clients cache")
324-
cache = v1.NewFactory(logger, newJobsCfg, fips)
327+
var cache cachingFactory
328+
cache, err = v2.NewFactory(logger, newJobsCfg, fips)
329+
if err != nil {
330+
logger.Error("Failed to construct aws sdk v2 client cache", "err", err, "path", configFile)
331+
return
332+
}
333+
334+
// Switch to v1 SDK if feature flag is enabled
325335
for _, featureFlag := range featureFlags {
326-
if featureFlag == config.AwsSdkV2 {
327-
logger.Info("Using aws sdk v2")
328-
var err error
329-
// Can't override cache while also creating err
330-
cache, err = v2.NewFactory(logger, newJobsCfg, fips)
331-
if err != nil {
332-
logger.Error("Failed to construct aws sdk v2 client cache", "err", err, "path", configFile)
333-
return
334-
}
336+
if featureFlag == config.AwsSdkV1 {
337+
cache = v1.NewFactory(logger, newJobsCfg, fips)
338+
logger.Info("Using aws sdk v1")
335339
}
336340
}
337341

docs/feature_flags.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ List of features or changes that are disabled by default since they are breaking
44

55
You can enable them using the `-enable-feature` flag with a comma separated list of features. They may be enabled by default in future versions.
66

7-
## AWS SDK v2
7+
## AWS SDK v1
88

9-
`-enable-feature=aws-sdk-v2`
9+
`-enable-feature=aws-sdk-v1`
1010

11-
Uses the v2 version of the aws sdk for go. The sdk v2 version was released in Jan 2021 and is marketed to come with large performance gains. This version offers a drastically different interface and should be compatible with sdk v2.
11+
Uses the v1 version of the aws sdk for go for backward compatibility. By default, YACE now uses AWS SDK v2 which was released in Jan 2021 and comes with large performance gains.
1212

1313
## Always return info metrics
1414

pkg/config/feature_flags.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import "context"
1616

1717
type flagsCtxKey struct{}
1818

19-
// AwsSdkV2 is a feature flag used to enable the use of aws sdk v2 which is expected to come with performance benefits
20-
const AwsSdkV2 = "aws-sdk-v2"
19+
// AwsSdkV1 is a feature flag used to enable the use of aws sdk v1 (v2 is the default)
20+
const AwsSdkV1 = "aws-sdk-v1"
2121

2222
// AlwaysReturnInfoMetrics is a feature flag used to enable the return of info metrics even when there are no corresponding CloudWatch metrics
2323
const AlwaysReturnInfoMetrics = "always-return-info-metrics"

0 commit comments

Comments
 (0)