Skip to content

Commit

Permalink
[translator/jaeger] Cleanup function names (open-telemetry#7775)
Browse files Browse the repository at this point in the history
Signed-off-by: Bogdan Drutu <[email protected]>
  • Loading branch information
bogdandrutu committed Feb 10, 2022
1 parent c8215a4 commit c6b8113
Show file tree
Hide file tree
Showing 22 changed files with 142 additions and 95 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
2 changes: 1 addition & 1 deletion exporter/coralogixexporter/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
4 changes: 2 additions & 2 deletions exporter/jaegerexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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))
}
Expand Down
2 changes: 1 addition & 1 deletion exporter/jaegerthrifthttpexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
Expand Down
4 changes: 2 additions & 2 deletions exporter/kafkaexporter/jaeger_marshaler.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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
}
Expand Down
4 changes: 2 additions & 2 deletions exporter/kafkaexporter/jaeger_marshaler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion exporter/logzioexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion exporter/sapmexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
2 changes: 1 addition & 1 deletion exporter/sapmexporter/exporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
14 changes: 10 additions & 4 deletions pkg/translator/jaeger/jaegerproto_to_traces.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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()

Expand Down
108 changes: 59 additions & 49 deletions pkg/translator/jaeger/jaegerproto_to_traces_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
}

Expand Down Expand Up @@ -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)
}
}

Expand Down
20 changes: 13 additions & 7 deletions pkg/translator/jaeger/jaegerthrift_to_traces.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
6 changes: 4 additions & 2 deletions pkg/translator/jaeger/jaegerthrift_to_traces_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
})
}
Expand Down Expand Up @@ -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)
}
}
Loading

0 comments on commit c6b8113

Please sign in to comment.