Skip to content

Commit 58c118a

Browse files
Merge branch 'main' into add-splunk-rolling-restart-metric
2 parents 6860193 + 3ebd0dd commit 58c118a

File tree

27 files changed

+361
-300
lines changed

27 files changed

+361
-300
lines changed

exporter/awsxrayexporter/awsxray.go

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ package awsxrayexporter // import "github.com/open-telemetry/opentelemetry-colle
66
import (
77
"context"
88
"errors"
9+
"fmt"
910

10-
"github.com/aws/aws-sdk-go/aws/awserr"
11-
"github.com/aws/aws-sdk-go/service/xray"
11+
"github.com/aws/aws-sdk-go-v2/service/xray"
12+
"github.com/aws/smithy-go"
1213
"go.opentelemetry.io/collector/component"
1314
"go.opentelemetry.io/collector/consumer/consumererror"
1415
"go.opentelemetry.io/collector/exporter"
@@ -28,31 +29,23 @@ const (
2829

2930
// newTracesExporter creates an exporter.Traces that converts to an X-Ray PutTraceSegments
3031
// request and then posts the request to the configured region's X-Ray endpoint.
31-
func newTracesExporter(
32-
cfg *Config,
33-
set exporter.Settings,
34-
cn awsutil.ConnAttr,
35-
registry telemetry.Registry,
36-
) (exporter.Traces, error) {
32+
func newTracesExporter(ctx context.Context, cfg *Config, set exporter.Settings, registry telemetry.Registry) (exporter.Traces, error) {
3733
typeLog := zap.String("type", set.ID.Type().String())
3834
nameLog := zap.String("name", set.ID.String())
3935
logger := set.Logger
40-
awsConfig, session, err := awsutil.GetAWSConfigSession(logger, cn, &cfg.AWSSessionSettings)
36+
awsConfig, err := awsutil.GetAWSConfig(logger, &cfg.AWSSessionSettings)
4137
if err != nil {
4238
return nil, err
4339
}
44-
xrayClient := awsxray.NewXRayClient(logger, awsConfig, set.BuildInfo, session)
40+
xrayClient := awsxray.NewXRayClient(logger, awsConfig, set.BuildInfo)
4541
sender := telemetry.NewNopSender()
4642
if cfg.TelemetryConfig.Enabled {
47-
opts := telemetry.ToOptions(cfg.TelemetryConfig, session, &cfg.AWSSessionSettings)
43+
opts := telemetry.ToOptions(ctx, cfg.TelemetryConfig, awsConfig, &cfg.AWSSessionSettings)
4844
opts = append(opts, telemetry.WithLogger(set.Logger))
4945
sender = registry.Register(set.ID, cfg.TelemetryConfig, xrayClient, opts...)
5046
}
51-
return exporterhelper.NewTraces(
52-
context.TODO(),
53-
set,
54-
cfg,
55-
func(_ context.Context, td ptrace.Traces) error {
47+
return exporterhelper.NewTraces(context.Background(), set, cfg,
48+
func(ctx context.Context, td ptrace.Traces) error {
5649
var err error
5750
logger.Debug("TracesExporter", typeLog, nameLog, zap.Int("#spans", td.SpanCount()))
5851

@@ -65,9 +58,9 @@ func newTracesExporter(
6558
} else {
6659
nextOffset = offset + maxSegmentsPerPut
6760
}
68-
input := xray.PutTraceSegmentsInput{TraceSegmentDocuments: documents[offset:nextOffset]}
69-
logger.Debug("request: " + input.String())
70-
output, localErr := xrayClient.PutTraceSegments(&input)
61+
input := &xray.PutTraceSegmentsInput{TraceSegmentDocuments: documents[offset:nextOffset]}
62+
logger.Debug("request: " + fmt.Sprintf("%+v", input))
63+
output, localErr := xrayClient.PutTraceSegments(ctx, input)
7164
if localErr != nil {
7265
logger.Debug("response error", zap.Error(localErr))
7366
err = wrapErrorIfBadRequest(localErr) // record error
@@ -76,7 +69,7 @@ func newTracesExporter(
7669
sender.RecordSegmentsSent(len(input.TraceSegmentDocuments))
7770
}
7871
if output != nil {
79-
logger.Debug("response: " + output.String())
72+
logger.Debug("response: " + fmt.Sprintf("%+v", output))
8073
}
8174
if err != nil {
8275
break
@@ -85,7 +78,7 @@ func newTracesExporter(
8578
return err
8679
},
8780
exporterhelper.WithStart(func(context.Context, component.Host) error {
88-
sender.Start()
81+
sender.Start(ctx)
8982
return nil
9083
}),
9184
exporterhelper.WithShutdown(func(context.Context) error {
@@ -96,8 +89,8 @@ func newTracesExporter(
9689
)
9790
}
9891

99-
func extractResourceSpans(config component.Config, logger *zap.Logger, td ptrace.Traces) []*string {
100-
documents := make([]*string, 0, td.SpanCount())
92+
func extractResourceSpans(config component.Config, logger *zap.Logger, td ptrace.Traces) []string {
93+
documents := make([]string, 0, td.SpanCount())
10194

10295
for i := 0; i < td.ResourceSpans().Len(); i++ {
10396
rspans := td.ResourceSpans().At(i)
@@ -117,19 +110,18 @@ func extractResourceSpans(config component.Config, logger *zap.Logger, td ptrace
117110
continue
118111
}
119112

120-
for l := range documentsForSpan {
121-
documents = append(documents, &documentsForSpan[l])
122-
}
113+
documents = append(documents, documentsForSpan...)
123114
}
124115
}
125116
}
126117
return documents
127118
}
128119

129120
func wrapErrorIfBadRequest(err error) error {
130-
var rfErr awserr.RequestFailure
131-
if errors.As(err, &rfErr) && rfErr.StatusCode() < 500 {
121+
var ae smithy.APIError
122+
if errors.As(err, &ae) && ae.ErrorFault() == smithy.FaultClient {
132123
return consumererror.NewPermanent(err)
133124
}
125+
134126
return err
135127
}

exporter/awsxrayexporter/awsxray_test.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"go.uber.org/zap"
2424

2525
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter/internal/metadata"
26-
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil"
2726
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray/telemetry"
2827
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray/telemetry/telemetrytest"
2928
)
@@ -78,7 +77,7 @@ func TestTelemetryEnabled(t *testing.T) {
7877
require.Equal(t, sink, sender)
7978
cfg := generateConfig(t)
8079
cfg.TelemetryConfig.Enabled = true
81-
traceExporter, err := newTracesExporter(cfg, set, new(awsutil.Conn), registry)
80+
traceExporter, err := newTracesExporter(context.Background(), cfg, set, registry)
8281
assert.NoError(t, err)
8382
ctx := context.Background()
8483
assert.NoError(t, traceExporter.Start(ctx, componenttest.NewNopHost()))
@@ -91,7 +90,7 @@ func TestTelemetryEnabled(t *testing.T) {
9190
assert.EqualValues(t, 1, sink.StopCount.Load())
9291
assert.True(t, sink.HasRecording())
9392
got := sink.Rotate()
94-
assert.EqualValues(t, 1, *got.BackendConnectionErrors.HTTPCode4XXCount)
93+
assert.EqualValues(t, 0, *got.BackendConnectionErrors.HTTPCode4XXCount)
9594
}
9695

9796
func BenchmarkForTracesExporter(b *testing.B) {
@@ -108,8 +107,7 @@ func BenchmarkForTracesExporter(b *testing.B) {
108107

109108
func initializeTracesExporter(tb testing.TB, exporterConfig *Config, registry telemetry.Registry) exporter.Traces {
110109
tb.Helper()
111-
mconn := new(awsutil.Conn)
112-
traceExporter, err := newTracesExporter(exporterConfig, exportertest.NewNopSettings(metadata.Type), mconn, registry)
110+
traceExporter, err := newTracesExporter(context.Background(), exporterConfig, exportertest.NewNopSettings(metadata.Type), registry)
113111
if err != nil {
114112
panic(err)
115113
}

exporter/awsxrayexporter/factory.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,7 @@ func createDefaultConfig() component.Config {
3636
}
3737
}
3838

39-
func createTracesExporter(
40-
_ context.Context,
41-
params exporter.Settings,
42-
cfg component.Config,
43-
) (exporter.Traces, error) {
39+
func createTracesExporter(ctx context.Context, params exporter.Settings, cfg component.Config) (exporter.Traces, error) {
4440
eCfg := cfg.(*Config)
45-
return newTracesExporter(eCfg, params, &awsutil.Conn{}, telemetry.GlobalRegistry())
41+
return newTracesExporter(ctx, eCfg, params, telemetry.GlobalRegistry())
4642
}

exporter/awsxrayexporter/go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ module github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxra
33
go 1.23.0
44

55
require (
6-
github.com/aws/aws-sdk-go v1.55.7
6+
github.com/aws/aws-sdk-go-v2 v1.36.3
7+
github.com/aws/aws-sdk-go-v2/service/xray v1.31.2
8+
github.com/aws/smithy-go v1.22.3
79
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.125.0
810
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.125.0
911
github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.125.0
@@ -23,7 +25,7 @@ require (
2325
)
2426

2527
require (
26-
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
28+
github.com/aws/aws-sdk-go v1.55.7 // indirect
2729
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
2830
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
2931
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
@@ -35,7 +37,6 @@ require (
3537
github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect
3638
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect
3739
github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect
38-
github.com/aws/smithy-go v1.22.2 // indirect
3940
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
4041
github.com/davecgh/go-spew v1.1.1 // indirect
4142
github.com/go-logr/logr v1.4.2 // indirect

exporter/awsxrayexporter/go.sum

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

exporter/awsxrayexporter/internal/translator/aws.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strconv"
88
"strings"
99

10-
"github.com/aws/aws-sdk-go/aws"
10+
"github.com/aws/aws-sdk-go-v2/aws"
1111
"go.opentelemetry.io/collector/pdata/pcommon"
1212
conventionsv112 "go.opentelemetry.io/collector/semconv/v1.12.0"
1313
conventions "go.opentelemetry.io/collector/semconv/v1.27.0"

exporter/awsxrayexporter/internal/translator/aws_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ package translator
66
import (
77
"testing"
88

9-
"github.com/aws/aws-sdk-go/aws"
9+
"github.com/aws/aws-sdk-go-v2/aws"
1010
"github.com/stretchr/testify/assert"
1111
"go.opentelemetry.io/collector/pdata/pcommon"
1212
conventionsv112 "go.opentelemetry.io/collector/semconv/v1.12.0"

exporter/awsxrayexporter/internal/translator/cause.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"strconv"
1212
"strings"
1313

14-
"github.com/aws/aws-sdk-go/aws"
14+
"github.com/aws/aws-sdk-go-v2/aws"
1515
"go.opentelemetry.io/collector/pdata/pcommon"
1616
"go.opentelemetry.io/collector/pdata/ptrace"
1717
conventionsv112 "go.opentelemetry.io/collector/semconv/v1.12.0"

exporter/awsxrayexporter/internal/translator/http.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"net"
88
"strconv"
99

10-
"github.com/aws/aws-sdk-go/aws"
10+
"github.com/aws/aws-sdk-go-v2/aws"
1111
"go.opentelemetry.io/collector/pdata/pcommon"
1212
"go.opentelemetry.io/collector/pdata/ptrace"
1313
conventionsv112 "go.opentelemetry.io/collector/semconv/v1.12.0"

exporter/awsxrayexporter/internal/translator/http_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99
"time"
1010

11-
"github.com/aws/aws-sdk-go/aws"
11+
"github.com/aws/aws-sdk-go-v2/aws"
1212
"github.com/stretchr/testify/assert"
1313
"github.com/stretchr/testify/require"
1414
"go.opentelemetry.io/collector/pdata/pcommon"

exporter/awsxrayexporter/internal/translator/segment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"strings"
1515
"time"
1616

17-
awsP "github.com/aws/aws-sdk-go/aws"
17+
awsP "github.com/aws/aws-sdk-go-v2/aws"
1818
"go.opentelemetry.io/collector/featuregate"
1919
"go.opentelemetry.io/collector/pdata/pcommon"
2020
"go.opentelemetry.io/collector/pdata/ptrace"

internal/aws/xray/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ go 1.23.0
44

55
require (
66
github.com/aws/aws-sdk-go v1.55.7
7+
github.com/aws/aws-sdk-go-v2 v1.36.3
8+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30
9+
github.com/aws/aws-sdk-go-v2/service/xray v1.31.2
10+
github.com/aws/smithy-go v1.22.2
711
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.125.0
812
github.com/stretchr/testify v1.10.0
913
go.opentelemetry.io/collector/component v1.31.1-0.20250430101735-2ecd0b7f95cd
@@ -12,10 +16,8 @@ require (
1216
)
1317

1418
require (
15-
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
1619
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
1720
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
18-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
1921
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
2022
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
2123
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
@@ -24,7 +26,6 @@ require (
2426
github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect
2527
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect
2628
github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect
27-
github.com/aws/smithy-go v1.22.2 // indirect
2829
github.com/davecgh/go-spew v1.1.1 // indirect
2930
github.com/go-logr/logr v1.4.2 // indirect
3031
github.com/go-logr/stdr v1.2.2 // indirect
@@ -33,7 +34,6 @@ require (
3334
github.com/hashicorp/go-version v1.7.0 // indirect
3435
github.com/jmespath/go-jmespath v0.4.0 // indirect
3536
github.com/pmezard/go-difflib v1.0.0 // indirect
36-
github.com/stretchr/objx v0.5.2 // indirect
3737
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
3838
go.opentelemetry.io/collector/featuregate v1.31.1-0.20250430101735-2ecd0b7f95cd // indirect
3939
go.opentelemetry.io/collector/internal/telemetry v0.125.1-0.20250430101735-2ecd0b7f95cd // indirect

internal/aws/xray/go.sum

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

internal/aws/xray/telemetry/nop_sender.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33

44
package telemetry // import "github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray/telemetry"
55

6-
import "github.com/aws/aws-sdk-go/service/xray"
6+
import (
7+
"context"
8+
9+
"github.com/aws/aws-sdk-go-v2/service/xray/types"
10+
)
711

812
// NewNopSender returns a Sender that drops all data.
913
func NewNopSender() Sender {
@@ -14,15 +18,15 @@ var nopSenderInstance Sender = &nopSender{}
1418

1519
type nopSender struct{}
1620

17-
func (n nopSender) Rotate() *xray.TelemetryRecord {
18-
return nil
21+
func (n nopSender) Rotate() types.TelemetryRecord {
22+
return types.TelemetryRecord{}
1923
}
2024

2125
func (n nopSender) HasRecording() bool {
2226
return false
2327
}
2428

25-
func (n nopSender) Start() {
29+
func (n nopSender) Start(_ context.Context) {
2630
}
2731

2832
func (n nopSender) Stop() {

internal/aws/xray/telemetry/nop_sender_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package telemetry
55

66
import (
7+
"context"
78
"testing"
89

910
"github.com/stretchr/testify/assert"
@@ -13,14 +14,14 @@ func TestNopRecorder(t *testing.T) {
1314
assert.Same(t, nopSenderInstance, NewNopSender())
1415
recorder := NewNopSender()
1516
assert.NotPanics(t, func() {
16-
recorder.Start()
17+
recorder.Start(context.Background())
1718
recorder.RecordConnectionError(nil)
1819
recorder.RecordSegmentsSent(1)
1920
recorder.RecordSegmentsSpillover(1)
2021
recorder.RecordSegmentsRejected(1)
2122
recorder.RecordSegmentsReceived(1)
2223
assert.False(t, recorder.HasRecording())
23-
assert.Nil(t, recorder.Rotate())
24+
assert.Zero(t, recorder.Rotate())
2425
recorder.Stop()
2526
})
2627
}

0 commit comments

Comments
 (0)