diff --git a/CHANGELOG.md b/CHANGELOG.md index 64d2fdd277deb..ce4bdc36a7041 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +## 🛑 Breaking changes 🛑 + +- `translator/jaeger`: Cleanup jaeger translator function names (#7775) + - Deprecate old funcs with Internal word. + ## 💡 Enhancements 💡 - `hostreceiver/memoryscraper`: Migrate the scraper to the mdatagen metrics builder (#7312) diff --git a/exporter/awskinesisexporter/internal/batch/encode_jaeger.go b/exporter/awskinesisexporter/internal/batch/encode_jaeger.go index a75a484c0a658..0b2ee2eb88a25 100644 --- a/exporter/awskinesisexporter/internal/batch/encode_jaeger.go +++ b/exporter/awskinesisexporter/internal/batch/encode_jaeger.go @@ -39,7 +39,7 @@ type jaegerEncoder struct { var _ Encoder = (*jaegerEncoder)(nil) func (je jaegerEncoder) Traces(td pdata.Traces) (*Batch, error) { - traces, err := jaeger.InternalTracesToJaegerProto(td) + traces, err := jaeger.ProtoFromTraces(td) if err != nil { return nil, consumererror.NewTraces(err, td) } diff --git a/exporter/coralogixexporter/client.go b/exporter/coralogixexporter/client.go index 45cb33d49b3e9..5e15ee4cf54b4 100644 --- a/exporter/coralogixexporter/client.go +++ b/exporter/coralogixexporter/client.go @@ -66,7 +66,7 @@ func (c *coralogixClient) startConnection(ctx context.Context, host component.Ho } func (c *coralogixClient) newPost(ctx context.Context, td pdata.Traces) error { - batches, err := jaeger.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) if err != nil { return fmt.Errorf("can't translate to jaeger proto: %w", err) } diff --git a/exporter/jaegerexporter/exporter.go b/exporter/jaegerexporter/exporter.go index 03f49a45d4a06..ec4a3b0041933 100644 --- a/exporter/jaegerexporter/exporter.go +++ b/exporter/jaegerexporter/exporter.go @@ -34,7 +34,7 @@ import ( "google.golang.org/grpc/connectivity" "google.golang.org/grpc/metadata" - jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" ) // newTracesExporter returns a new Jaeger gRPC exporter. @@ -95,7 +95,7 @@ func (s *protoGRPCSender) pushTraces( td pdata.Traces, ) error { - batches, err := jaegertranslator.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) if err != nil { return consumererror.NewPermanent(fmt.Errorf("failed to push trace data via Jaeger exporter: %w", err)) } diff --git a/exporter/jaegerthrifthttpexporter/exporter.go b/exporter/jaegerthrifthttpexporter/exporter.go index abb8d3f764245..444297110b9ed 100644 --- a/exporter/jaegerthrifthttpexporter/exporter.go +++ b/exporter/jaegerthrifthttpexporter/exporter.go @@ -74,7 +74,7 @@ func (s *jaegerThriftHTTPSender) pushTraceData( ctx context.Context, td pdata.Traces, ) error { - batches, err := jaegertranslator.InternalTracesToJaegerProto(td) + batches, err := jaegertranslator.ProtoFromTraces(td) if err != nil { return consumererror.NewPermanent(fmt.Errorf("failed to push trace data via Jaeger Thrift HTTP exporter: %w", err)) } diff --git a/exporter/kafkaexporter/jaeger_marshaler.go b/exporter/kafkaexporter/jaeger_marshaler.go index 5a5de6a1b9f62..3260a1b58e677 100644 --- a/exporter/kafkaexporter/jaeger_marshaler.go +++ b/exporter/kafkaexporter/jaeger_marshaler.go @@ -23,7 +23,7 @@ import ( "go.opentelemetry.io/collector/model/pdata" "go.uber.org/multierr" - jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" ) type jaegerMarshaler struct { @@ -33,7 +33,7 @@ type jaegerMarshaler struct { var _ TracesMarshaler = (*jaegerMarshaler)(nil) func (j jaegerMarshaler) Marshal(traces pdata.Traces, topic string) ([]*sarama.ProducerMessage, error) { - batches, err := jaegertranslator.InternalTracesToJaegerProto(traces) + batches, err := jaeger.ProtoFromTraces(traces) if err != nil { return nil, err } diff --git a/exporter/kafkaexporter/jaeger_marshaler_test.go b/exporter/kafkaexporter/jaeger_marshaler_test.go index f4ad741752465..dfcb8ba30edf5 100644 --- a/exporter/kafkaexporter/jaeger_marshaler_test.go +++ b/exporter/kafkaexporter/jaeger_marshaler_test.go @@ -24,7 +24,7 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/model/pdata" - jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" ) func TestJaegerMarshaler(t *testing.T) { @@ -35,7 +35,7 @@ func TestJaegerMarshaler(t *testing.T) { span.SetEndTimestamp(pdata.Timestamp(20)) span.SetTraceID(pdata.NewTraceID([16]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16})) span.SetSpanID(pdata.NewSpanID([8]byte{1, 2, 3, 4, 5, 6, 7, 8})) - batches, err := jaegertranslator.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) require.NoError(t, err) batches[0].Spans[0].Process = batches[0].Process diff --git a/exporter/logzioexporter/exporter.go b/exporter/logzioexporter/exporter.go index 9154b3d738ba6..8d32ebf64b17b 100644 --- a/exporter/logzioexporter/exporter.go +++ b/exporter/logzioexporter/exporter.go @@ -70,7 +70,7 @@ func newLogzioExporter(config *Config, params component.ExporterCreateSettings) writer: spanWriter, accountToken: config.TracesToken, logger: &logger, - InternalTracesToJaegerTraces: jaeger.InternalTracesToJaegerProto, + InternalTracesToJaegerTraces: jaeger.ProtoFromTraces, WriteSpanFunc: spanWriter.WriteSpan, }, nil } diff --git a/exporter/sapmexporter/exporter.go b/exporter/sapmexporter/exporter.go index 09168ca269e49..8fc1678ffa505 100644 --- a/exporter/sapmexporter/exporter.go +++ b/exporter/sapmexporter/exporter.go @@ -109,7 +109,7 @@ func (se *sapmExporter) pushTraceData(ctx context.Context, td pdata.Traces) erro // All metrics in the pdata.Metrics will have the same access token because of the BatchPerResourceMetrics. accessToken := se.retrieveAccessToken(rss.At(0)) - batches, err := jaeger.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) if err != nil { return consumererror.NewPermanent(err) } diff --git a/exporter/sapmexporter/exporter_test.go b/exporter/sapmexporter/exporter_test.go index 4d2cd0856caae..0f971cb02adc4 100644 --- a/exporter/sapmexporter/exporter_test.go +++ b/exporter/sapmexporter/exporter_test.go @@ -109,7 +109,7 @@ func TestFilterToken(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { traces := buildTestTraces(tt.useToken) - batches, err := jaeger.InternalTracesToJaegerProto(traces) + batches, err := jaeger.ProtoFromTraces(traces) require.NoError(t, err) assert.Equal(t, tt.useToken, hasToken(batches)) filterToken(batches) diff --git a/pkg/translator/jaeger/jaegerproto_to_traces.go b/pkg/translator/jaeger/jaegerproto_to_traces.go index c86d912fbd29b..55bb024c6febb 100644 --- a/pkg/translator/jaeger/jaegerproto_to_traces.go +++ b/pkg/translator/jaeger/jaegerproto_to_traces.go @@ -32,11 +32,17 @@ import ( var blankJaegerProtoSpan = new(model.Span) -// ProtoBatchesToInternalTraces converts multiple Jaeger proto batches to internal traces +// Deprecated: [0.45.0] use `jaeger.ProtoToTraces` func ProtoBatchesToInternalTraces(batches []*model.Batch) pdata.Traces { + td, _ := ProtoToTraces(batches) + return td +} + +// ProtoToTraces converts multiple Jaeger proto batches to internal traces +func ProtoToTraces(batches []*model.Batch) (pdata.Traces, error) { traceData := pdata.NewTraces() if len(batches) == 0 { - return traceData + return traceData, nil } rss := traceData.ResourceSpans() @@ -50,10 +56,10 @@ func ProtoBatchesToInternalTraces(batches []*model.Batch) pdata.Traces { protoBatchToResourceSpans(*batch, rss.AppendEmpty()) } - return traceData + return traceData, nil } -// ProtoBatchToInternalTraces converts Jeager proto batch to internal traces +// Deprecated: [0.45.0] use `jaeger.ProtoToTraces` func ProtoBatchToInternalTraces(batch model.Batch) pdata.Traces { traceData := pdata.NewTraces() diff --git a/pkg/translator/jaeger/jaegerproto_to_traces_test.go b/pkg/translator/jaeger/jaegerproto_to_traces_test.go index 48cb296485a6c..957ff17d2c806 100644 --- a/pkg/translator/jaeger/jaegerproto_to_traces_test.go +++ b/pkg/translator/jaeger/jaegerproto_to_traces_test.go @@ -175,88 +175,94 @@ func TestJTagsToInternalAttributes(t *testing.T) { require.EqualValues(t, expected, got) } -func TestProtoBatchToInternalTraces(t *testing.T) { +func TestProtoToTraces(t *testing.T) { tests := []struct { name string - jb model.Batch + jb []*model.Batch td pdata.Traces }{ { name: "empty", - jb: model.Batch{}, + jb: []*model.Batch{}, td: pdata.NewTraces(), }, { name: "no-spans", - jb: model.Batch{ - Process: generateProtoProcess(), - }, + jb: []*model.Batch{ + { + Process: generateProtoProcess(), + }}, td: generateTracesResourceOnly(), }, { name: "no-resource-attrs", - jb: model.Batch{ - Process: &model.Process{ - ServiceName: tracetranslator.ResourceNoServiceName, - }, - }, + jb: []*model.Batch{ + { + Process: &model.Process{ + ServiceName: tracetranslator.ResourceNoServiceName, + }, + }}, td: generateTracesResourceOnlyWithNoAttrs(), }, { name: "one-span-no-resources", - jb: model.Batch{ - Process: &model.Process{ - ServiceName: tracetranslator.ResourceNoServiceName, - }, - Spans: []*model.Span{ - generateProtoSpanWithTraceState(), - }, - }, + jb: []*model.Batch{ + { + Process: &model.Process{ + ServiceName: tracetranslator.ResourceNoServiceName, + }, + Spans: []*model.Span{ + generateProtoSpanWithTraceState(), + }, + }}, td: generateTracesOneSpanNoResourceWithTraceState(), }, { name: "two-spans-child-parent", - jb: model.Batch{ - Process: &model.Process{ - ServiceName: tracetranslator.ResourceNoServiceName, - }, - Spans: []*model.Span{ - generateProtoSpan(), - generateProtoChildSpan(), - }, - }, + jb: []*model.Batch{ + { + Process: &model.Process{ + ServiceName: tracetranslator.ResourceNoServiceName, + }, + Spans: []*model.Span{ + generateProtoSpan(), + generateProtoChildSpan(), + }, + }}, td: generateTracesTwoSpansChildParent(), }, { name: "two-spans-with-follower", - jb: model.Batch{ - Process: &model.Process{ - ServiceName: tracetranslator.ResourceNoServiceName, - }, - Spans: []*model.Span{ - generateProtoSpan(), - generateProtoFollowerSpan(), - }, - }, + jb: []*model.Batch{ + { + Process: &model.Process{ + ServiceName: tracetranslator.ResourceNoServiceName, + }, + Spans: []*model.Span{ + generateProtoSpan(), + generateProtoFollowerSpan(), + }, + }}, td: generateTracesTwoSpansWithFollower(), }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - td := ProtoBatchToInternalTraces(test.jb) + td, err := ProtoToTraces(test.jb) + assert.NoError(t, err) assert.EqualValues(t, test.td, td) }) } } func TestProtoBatchToInternalTracesWithTwoLibraries(t *testing.T) { - jb := model.Batch{ + jb := &model.Batch{ Process: &model.Process{ ServiceName: tracetranslator.ResourceNoServiceName, }, @@ -300,7 +306,8 @@ func TestProtoBatchToInternalTracesWithTwoLibraries(t *testing.T) { library1Span := expected.ResourceSpans().At(0).InstrumentationLibrarySpans().At(0) library2Span := expected.ResourceSpans().At(0).InstrumentationLibrarySpans().At(1) - actual := ProtoBatchToInternalTraces(jb) + actual, err := ProtoToTraces([]*model.Batch{jb}) + assert.NoError(t, err) assert.Equal(t, actual.ResourceSpans().Len(), 1) assert.Equal(t, actual.ResourceSpans().At(0).InstrumentationLibrarySpans().Len(), 2) @@ -448,7 +455,8 @@ func TestProtoBatchesToInternalTraces(t *testing.T) { twoSpans := generateTracesTwoSpansChildParent().ResourceSpans().At(0) twoSpans.CopyTo(tgt) - got := ProtoBatchesToInternalTraces(batches) + got, err := ProtoToTraces(batches) + assert.NoError(t, err) assert.EqualValues(t, expected, got) } @@ -805,17 +813,19 @@ func generateProtoFollowerSpan() *model.Span { } func BenchmarkProtoBatchToInternalTraces(b *testing.B) { - jb := model.Batch{ - Process: generateProtoProcess(), - Spans: []*model.Span{ - generateProtoSpan(), - generateProtoChildSpan(), - }, - } + jb := []*model.Batch{ + { + Process: generateProtoProcess(), + Spans: []*model.Span{ + generateProtoSpan(), + generateProtoChildSpan(), + }, + }} b.ResetTimer() for n := 0; n < b.N; n++ { - ProtoBatchToInternalTraces(jb) + _, err := ProtoToTraces(jb) + assert.NoError(b, err) } } diff --git a/pkg/translator/jaeger/jaegerthrift_to_traces.go b/pkg/translator/jaeger/jaegerthrift_to_traces.go index 61110172ad4b9..741dfe0da6888 100644 --- a/pkg/translator/jaeger/jaegerthrift_to_traces.go +++ b/pkg/translator/jaeger/jaegerthrift_to_traces.go @@ -29,26 +29,32 @@ import ( var blankJaegerThriftSpan = new(jaeger.Span) -// ThriftBatchToInternalTraces transforms a Thrift trace batch into pdata.Traces. -func ThriftBatchToInternalTraces(batch *jaeger.Batch) pdata.Traces { +// Deprecated: [0.45.0] use `jaeger.ThriftToTraces` +func ThriftBatchToInternalTraces(batches *jaeger.Batch) pdata.Traces { + td, _ := ThriftToTraces(batches) + return td +} + +// ThriftToTraces transforms a Thrift trace batch into pdata.Traces. +func ThriftToTraces(batches *jaeger.Batch) (pdata.Traces, error) { traceData := pdata.NewTraces() - jProcess := batch.GetProcess() - jSpans := batch.GetSpans() + jProcess := batches.GetProcess() + jSpans := batches.GetSpans() if jProcess == nil && len(jSpans) == 0 { - return traceData + return traceData, nil } rs := traceData.ResourceSpans().AppendEmpty() jThriftProcessToInternalResource(jProcess, rs.Resource()) if len(jSpans) == 0 { - return traceData + return traceData, nil } jThriftSpansToInternal(jSpans, rs.InstrumentationLibrarySpans().AppendEmpty().Spans()) - return traceData + return traceData, nil } func jThriftProcessToInternalResource(process *jaeger.Process, dest pdata.Resource) { diff --git a/pkg/translator/jaeger/jaegerthrift_to_traces_test.go b/pkg/translator/jaeger/jaegerthrift_to_traces_test.go index 1383aaf606224..8cde5e883217a 100644 --- a/pkg/translator/jaeger/jaegerthrift_to_traces_test.go +++ b/pkg/translator/jaeger/jaegerthrift_to_traces_test.go @@ -129,7 +129,8 @@ func TestThriftBatchToInternalTraces(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - td := ThriftBatchToInternalTraces(test.jb) + td, err := ThriftToTraces(test.jb) + assert.NoError(t, err) assert.EqualValues(t, test.td, td) }) } @@ -297,6 +298,7 @@ func BenchmarkThriftBatchToInternalTraces(b *testing.B) { b.ResetTimer() for n := 0; n < b.N; n++ { - ThriftBatchToInternalTraces(jb) + _, err := ThriftToTraces(jb) + assert.NoError(b, err) } } diff --git a/pkg/translator/jaeger/traces_to_jaegerproto.go b/pkg/translator/jaeger/traces_to_jaegerproto.go index 562a071c21171..a0f799f1b5fab 100644 --- a/pkg/translator/jaeger/traces_to_jaegerproto.go +++ b/pkg/translator/jaeger/traces_to_jaegerproto.go @@ -25,9 +25,14 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/tracetranslator" ) -// InternalTracesToJaegerProto translates internal trace data into the Jaeger Proto for GRPC. -// Returns slice of translated Jaeger batches and error if translation failed. +// Deprecated: [0.45.0] use `jaeger.ProtoToTraces` func InternalTracesToJaegerProto(td pdata.Traces) ([]*model.Batch, error) { + return ProtoFromTraces(td) +} + +// ProtoFromTraces translates internal trace data into the Jaeger Proto for GRPC. +// Returns slice of translated Jaeger batches and error if translation failed. +func ProtoFromTraces(td pdata.Traces) ([]*model.Batch, error) { resourceSpans := td.ResourceSpans() if resourceSpans.Len() == 0 { diff --git a/pkg/translator/jaeger/traces_to_jaegerproto_test.go b/pkg/translator/jaeger/traces_to_jaegerproto_test.go index c5ea3b3eb302b..d525b82605828 100644 --- a/pkg/translator/jaeger/traces_to_jaegerproto_test.go +++ b/pkg/translator/jaeger/traces_to_jaegerproto_test.go @@ -306,7 +306,7 @@ func TestInternalTracesToJaegerProto(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - jbs, err := InternalTracesToJaegerProto(test.td) + jbs, err := ProtoFromTraces(test.td) assert.EqualValues(t, test.err, err) if test.jb == nil { assert.Len(t, jbs, 0) @@ -324,10 +324,10 @@ func TestInternalTracesToJaegerProtoBatchesAndBack(t *testing.T) { "../../../internal/coreinternal/goldendataset/testdata/generated_pict_pairs_spans.txt") assert.NoError(t, err) for _, td := range tds { - protoBatches, err := InternalTracesToJaegerProto(td) + protoBatches, err := ProtoFromTraces(td) + assert.NoError(t, err) + tdFromPB, err := ProtoToTraces(protoBatches) assert.NoError(t, err) - tdFromPB := ProtoBatchesToInternalTraces(protoBatches) - assert.NotNil(t, tdFromPB) assert.Equal(t, td.SpanCount(), tdFromPB.SpanCount()) } } @@ -358,6 +358,7 @@ func BenchmarkInternalTracesToJaegerProto(b *testing.B) { b.ResetTimer() for n := 0; n < b.N; n++ { - InternalTracesToJaegerProto(td) // nolint:errcheck + _, err := ProtoFromTraces(td) + assert.NoError(b, err) } } diff --git a/receiver/jaegerreceiver/jaeger_agent_test.go b/receiver/jaegerreceiver/jaeger_agent_test.go index 99de9f56f4c4c..dd0c6268dc807 100644 --- a/receiver/jaegerreceiver/jaeger_agent_test.go +++ b/receiver/jaegerreceiver/jaeger_agent_test.go @@ -208,7 +208,7 @@ func testJaegerAgent(t *testing.T, agentEndpoint string, receiverConfig *configu // 3. Now finally send some spans td := generateTraceData() - batches, err := jaeger.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) require.NoError(t, err) for _, batch := range batches { require.NoError(t, jexp.EmitBatch(context.Background(), modelToThrift(batch))) diff --git a/receiver/jaegerreceiver/trace_receiver.go b/receiver/jaegerreceiver/trace_receiver.go index 53195cdd46b57..3f7f8a3a7ff3b 100644 --- a/receiver/jaegerreceiver/trace_receiver.go +++ b/receiver/jaegerreceiver/trace_receiver.go @@ -36,6 +36,7 @@ import ( "github.com/jaegertracing/jaeger/cmd/agent/app/servers/thriftudp" "github.com/jaegertracing/jaeger/cmd/collector/app/handler" collectorSampling "github.com/jaegertracing/jaeger/cmd/collector/app/sampling" + "github.com/jaegertracing/jaeger/model" staticStrategyStore "github.com/jaegertracing/jaeger/plugin/sampling/strategystore/static" "github.com/jaegertracing/jaeger/proto-gen/api_v2" "github.com/jaegertracing/jaeger/thrift-gen/agent" @@ -231,7 +232,10 @@ func consumeTraces(ctx context.Context, batch *jaeger.Batch, consumer consumer.T if batch == nil { return 0, nil } - td := jaegertranslator.ThriftBatchToInternalTraces(batch) + td, err := jaegertranslator.ThriftToTraces(batch) + if err != nil { + return 0, err + } return len(batch.Spans), consumer.ConsumeTraces(ctx, td) } @@ -276,10 +280,15 @@ func (jr *jReceiver) GetBaggageRestrictions(ctx context.Context, serviceName str func (jr *jReceiver) PostSpans(ctx context.Context, r *api_v2.PostSpansRequest) (*api_v2.PostSpansResponse, error) { ctx = jr.grpcObsrecv.StartTracesOp(ctx) - td := jaegertranslator.ProtoBatchToInternalTraces(r.GetBatch()) + batch := r.GetBatch() + td, err := jaegertranslator.ProtoToTraces([]*model.Batch{&batch}) + if err != nil { + jr.grpcObsrecv.EndTracesOp(ctx, protobufFormat, len(batch.Spans), err) + return nil, err + } - err := jr.nextConsumer.ConsumeTraces(ctx, td) - jr.grpcObsrecv.EndTracesOp(ctx, protobufFormat, len(r.GetBatch().Spans), err) + err = jr.nextConsumer.ConsumeTraces(ctx, td) + jr.grpcObsrecv.EndTracesOp(ctx, protobufFormat, len(batch.Spans), err) if err != nil { return nil, err } diff --git a/receiver/jaegerreceiver/trace_receiver_test.go b/receiver/jaegerreceiver/trace_receiver_test.go index 1951e09e4131d..54e1e202a0171 100644 --- a/receiver/jaegerreceiver/trace_receiver_test.go +++ b/receiver/jaegerreceiver/trace_receiver_test.go @@ -106,7 +106,7 @@ func TestReception(t *testing.T) { // 2. Then send spans to the Jaeger receiver. collectorAddr := fmt.Sprintf("http://localhost:%d/api/traces", port) td := generateTraceData() - batches, err := jaeger.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) require.NoError(t, err) for _, batch := range batches { require.NoError(t, sendToCollector(collectorAddr, modelToThrift(batch))) diff --git a/receiver/kafkareceiver/jaeger_unmarshaler.go b/receiver/kafkareceiver/jaeger_unmarshaler.go index d7b3e837c5fae..b983cf8bf1495 100644 --- a/receiver/kafkareceiver/jaeger_unmarshaler.go +++ b/receiver/kafkareceiver/jaeger_unmarshaler.go @@ -21,7 +21,7 @@ import ( jaegerproto "github.com/jaegertracing/jaeger/model" "go.opentelemetry.io/collector/model/pdata" - jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" ) type jaegerProtoSpanUnmarshaler struct { @@ -35,7 +35,7 @@ func (j jaegerProtoSpanUnmarshaler) Unmarshal(bytes []byte) (pdata.Traces, error if err != nil { return pdata.NewTraces(), err } - return jaegerSpanToTraces(span), nil + return jaegerSpanToTraces(span) } func (j jaegerProtoSpanUnmarshaler) Encoding() string { @@ -53,17 +53,17 @@ func (j jaegerJSONSpanUnmarshaler) Unmarshal(data []byte) (pdata.Traces, error) if err != nil { return pdata.NewTraces(), err } - return jaegerSpanToTraces(span), nil + return jaegerSpanToTraces(span) } func (j jaegerJSONSpanUnmarshaler) Encoding() string { return "jaeger_json" } -func jaegerSpanToTraces(span *jaegerproto.Span) pdata.Traces { +func jaegerSpanToTraces(span *jaegerproto.Span) (pdata.Traces, error) { batch := jaegerproto.Batch{ Spans: []*jaegerproto.Span{span}, Process: span.Process, } - return jaegertranslator.ProtoBatchToInternalTraces(batch) + return jaeger.ProtoToTraces([]*jaegerproto.Batch{&batch}) } diff --git a/receiver/kafkareceiver/jaeger_unmarshaler_test.go b/receiver/kafkareceiver/jaeger_unmarshaler_test.go index 3ea9a51203cc8..8179c93ff6dd9 100644 --- a/receiver/kafkareceiver/jaeger_unmarshaler_test.go +++ b/receiver/kafkareceiver/jaeger_unmarshaler_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/model/pdata" - jaegertranslator "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger" ) func TestUnmarshalJaeger(t *testing.T) { @@ -34,7 +34,7 @@ func TestUnmarshalJaeger(t *testing.T) { span.SetEndTimestamp(pdata.Timestamp(20)) span.SetTraceID(pdata.NewTraceID([16]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16})) span.SetSpanID(pdata.NewSpanID([8]byte{1, 2, 3, 4, 5, 6, 7, 8})) - batches, err := jaegertranslator.InternalTracesToJaegerProto(td) + batches, err := jaeger.ProtoFromTraces(td) require.NoError(t, err) protoBytes, err := batches[0].Spans[0].Marshal() diff --git a/receiver/sapmreceiver/trace_receiver.go b/receiver/sapmreceiver/trace_receiver.go index b6f4fe1369bc5..28c4b70b410c3 100644 --- a/receiver/sapmreceiver/trace_receiver.go +++ b/receiver/sapmreceiver/trace_receiver.go @@ -69,7 +69,10 @@ func (sr *sapmReceiver) handleRequest(req *http.Request) error { ctx := sr.obsrecv.StartTracesOp(req.Context()) - td := jaeger.ProtoBatchesToInternalTraces(sapm.Batches) + td, err := jaeger.ProtoToTraces(sapm.Batches) + if err != nil { + return err + } if sr.config.AccessTokenPassthrough { if accessToken := req.Header.Get(splunk.SFxAccessTokenHeader); accessToken != "" {