From 479f680af4f57e5cf85bcd29cec61dc6964d95b5 Mon Sep 17 00:00:00 2001 From: Iris Song Date: Fri, 21 May 2021 09:48:23 -0700 Subject: [PATCH 1/6] Move BigEndian helper functions in to an internal package --- CHANGELOG.md | 1 + .../idsutil}/big_endian_converter.go | 2 +- .../idsutil}/big_endian_converter_test.go | 2 +- .../probabilisticsampler_test.go | 8 ++++---- translator/trace/jaeger/jaegerproto_to_traces.go | 11 ++++++----- translator/trace/jaeger/jaegerproto_to_traces_test.go | 5 +++-- translator/trace/jaeger/jaegerthrift_to_traces.go | 11 ++++++----- translator/trace/jaeger/traces_to_jaegerproto.go | 5 +++-- translator/trace/zipkin/traces_to_zipkinv2.go | 5 +++-- .../trace/zipkin/zipkinv1_thrift_to_protospan.go | 8 ++++---- translator/trace/zipkin/zipkinv1_to_protospan.go | 5 +++-- translator/trace/zipkin/zipkinv2_to_traces.go | 7 ++++--- 12 files changed, 39 insertions(+), 31 deletions(-) rename {translator/trace => internal/idsutil}/big_endian_converter.go (98%) rename {translator/trace => internal/idsutil}/big_endian_converter_test.go (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae6f21ce44d..01b7df79bda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ## 🛑 Breaking changes 🛑 - Remove unused logstest package (#3222) +- Move BigEndian helper functions in `tracetranslator` to an internal package.(#TBD) ## v0.27.0 Beta diff --git a/translator/trace/big_endian_converter.go b/internal/idsutil/big_endian_converter.go similarity index 98% rename from translator/trace/big_endian_converter.go rename to internal/idsutil/big_endian_converter.go index f5411b9b759..25ddb99a7dc 100644 --- a/translator/trace/big_endian_converter.go +++ b/internal/idsutil/big_endian_converter.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package tracetranslator +package idsutil import ( "encoding/binary" diff --git a/translator/trace/big_endian_converter_test.go b/internal/idsutil/big_endian_converter_test.go similarity index 99% rename from translator/trace/big_endian_converter_test.go rename to internal/idsutil/big_endian_converter_test.go index 9a9d7c0137d..3f5d664977c 100644 --- a/translator/trace/big_endian_converter_test.go +++ b/internal/idsutil/big_endian_converter_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package tracetranslator +package idsutil import ( "math" diff --git a/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go b/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go index 1cec37a3ebc..6631033160c 100644 --- a/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go +++ b/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go @@ -27,8 +27,8 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/translator/conventions" - tracetranslator "go.opentelemetry.io/collector/translator/trace" ) func TestNewTracesProcessor(t *testing.T) { @@ -437,7 +437,7 @@ func Test_hash(t *testing.T) { // collisions, but, of course it is possible that they happen, a different random source // should avoid that. r := rand.New(rand.NewSource(1)) - fullKey := tracetranslator.UInt64ToTraceID(r.Uint64(), r.Uint64()).Bytes() + fullKey := idsutil.UInt64ToTraceID(r.Uint64(), r.Uint64()).Bytes() seen := make(map[uint32]bool) for i := 1; i <= len(fullKey); i++ { key := fullKey[:i] @@ -467,8 +467,8 @@ func genRandomTestData(numBatches, numTracesPerBatch int, serviceName string, re for k := 0; k < numTracesPerBatch; k++ { span := ils.Spans().At(k) - span.SetTraceID(tracetranslator.UInt64ToTraceID(r.Uint64(), r.Uint64())) - span.SetSpanID(tracetranslator.UInt64ToSpanID(r.Uint64())) + span.SetTraceID(idsutil.UInt64ToTraceID(r.Uint64(), r.Uint64())) + span.SetSpanID(idsutil.UInt64ToSpanID(r.Uint64())) attributes := make(map[string]pdata.AttributeValue) attributes[conventions.AttributeHTTPStatusCode] = pdata.NewAttributeValueInt(404) attributes[conventions.AttributeHTTPStatusText] = pdata.NewAttributeValueString("Not Found") diff --git a/translator/trace/jaeger/jaegerproto_to_traces.go b/translator/trace/jaeger/jaegerproto_to_traces.go index c130b20127e..7ab79c4ba55 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces.go +++ b/translator/trace/jaeger/jaegerproto_to_traces.go @@ -25,6 +25,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/jaeger" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/internal/occonventions" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -164,15 +165,15 @@ type instrumentationLibrary struct { func jSpanToInternal(span *model.Span) (pdata.Span, instrumentationLibrary) { dest := pdata.NewSpan() - dest.SetTraceID(tracetranslator.UInt64ToTraceID(span.TraceID.High, span.TraceID.Low)) - dest.SetSpanID(tracetranslator.UInt64ToSpanID(uint64(span.SpanID))) + dest.SetTraceID(idsutil.UInt64ToTraceID(span.TraceID.High, span.TraceID.Low)) + dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(span.SpanID))) dest.SetName(span.OperationName) dest.SetStartTimestamp(pdata.TimestampFromTime(span.StartTime)) dest.SetEndTimestamp(pdata.TimestampFromTime(span.StartTime.Add(span.Duration))) parentSpanID := span.ParentSpanID() if parentSpanID != model.SpanID(0) { - dest.SetParentSpanID(tracetranslator.UInt64ToSpanID(uint64(parentSpanID))) + dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(parentSpanID))) } attrs := dest.Attributes() @@ -357,8 +358,8 @@ func jReferencesToSpanLinks(refs []model.SpanRef, excludeParentID model.SpanID, continue } - link.SetTraceID(tracetranslator.UInt64ToTraceID(ref.TraceID.High, ref.TraceID.Low)) - link.SetSpanID(tracetranslator.UInt64ToSpanID(uint64(ref.SpanID))) + link.SetTraceID(idsutil.UInt64ToTraceID(ref.TraceID.High, ref.TraceID.Low)) + link.SetSpanID(idsutil.UInt64ToSpanID(uint64(ref.SpanID))) i++ } diff --git a/translator/trace/jaeger/jaegerproto_to_traces_test.go b/translator/trace/jaeger/jaegerproto_to_traces_test.go index 3d0217d9a7b..4181c28d386 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces_test.go +++ b/translator/trace/jaeger/jaegerproto_to_traces_test.go @@ -26,6 +26,7 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/internal/testdata" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -843,8 +844,8 @@ func generateTraceDataTwoSpansFromTwoLibraries() pdata.Traces { rs0ils0.InstrumentationLibrary().SetName("library1") rs0ils0.InstrumentationLibrary().SetVersion("0.42.0") span1 := rs0ils0.Spans().AppendEmpty() - span1.SetTraceID(tracetranslator.UInt64ToTraceID(0, 0)) - span1.SetSpanID(tracetranslator.UInt64ToSpanID(0)) + span1.SetTraceID(idsutil.UInt64ToTraceID(0, 0)) + span1.SetSpanID(idsutil.UInt64ToSpanID(0)) span1.SetName("operation1") span1.SetStartTimestamp(testSpanStartTimestamp) span1.SetEndTimestamp(testSpanEndTimestamp) diff --git a/translator/trace/jaeger/jaegerthrift_to_traces.go b/translator/trace/jaeger/jaegerthrift_to_traces.go index 2bb9f292535..db7814b2e16 100644 --- a/translator/trace/jaeger/jaegerthrift_to_traces.go +++ b/translator/trace/jaeger/jaegerthrift_to_traces.go @@ -22,6 +22,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/jaeger" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -95,15 +96,15 @@ func jThriftSpansToInternal(spans []*jaeger.Span, dest pdata.SpanSlice) { } func jThriftSpanToInternal(span *jaeger.Span, dest pdata.Span) { - dest.SetTraceID(tracetranslator.UInt64ToTraceID(uint64(span.TraceIdHigh), uint64(span.TraceIdLow))) - dest.SetSpanID(tracetranslator.UInt64ToSpanID(uint64(span.SpanId))) + dest.SetTraceID(idsutil.UInt64ToTraceID(uint64(span.TraceIdHigh), uint64(span.TraceIdLow))) + dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(span.SpanId))) dest.SetName(span.OperationName) dest.SetStartTimestamp(microsecondsToUnixNano(span.StartTime)) dest.SetEndTimestamp(microsecondsToUnixNano(span.StartTime + span.Duration)) parentSpanID := span.ParentSpanId if parentSpanID != 0 { - dest.SetParentSpanID(tracetranslator.UInt64ToSpanID(uint64(parentSpanID))) + dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(parentSpanID))) } attrs := dest.Attributes() @@ -184,8 +185,8 @@ func jThriftReferencesToSpanLinks(refs []*jaeger.SpanRef, excludeParentID int64, continue } - link.SetTraceID(tracetranslator.UInt64ToTraceID(uint64(ref.TraceIdHigh), uint64(ref.TraceIdLow))) - link.SetSpanID(tracetranslator.UInt64ToSpanID(uint64(ref.SpanId))) + link.SetTraceID(idsutil.UInt64ToTraceID(uint64(ref.TraceIdHigh), uint64(ref.TraceIdLow))) + link.SetSpanID(idsutil.UInt64ToSpanID(uint64(ref.SpanId))) i++ } diff --git a/translator/trace/jaeger/traces_to_jaegerproto.go b/translator/trace/jaeger/traces_to_jaegerproto.go index ef0cc86da07..52ad258442d 100644 --- a/translator/trace/jaeger/traces_to_jaegerproto.go +++ b/translator/trace/jaeger/traces_to_jaegerproto.go @@ -20,6 +20,7 @@ import ( "github.com/jaegertracing/jaeger/model" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -252,7 +253,7 @@ func getJaegerProtoSpanTags(span pdata.Span, instrumentationLibrary pdata.Instru } func traceIDToJaegerProto(traceID pdata.TraceID) (model.TraceID, error) { - traceIDHigh, traceIDLow := tracetranslator.TraceIDToUInt64Pair(traceID) + traceIDHigh, traceIDLow := idsutil.TraceIDToUInt64Pair(traceID) if traceIDLow == 0 && traceIDHigh == 0 { return model.TraceID{}, errZeroTraceID } @@ -263,7 +264,7 @@ func traceIDToJaegerProto(traceID pdata.TraceID) (model.TraceID, error) { } func spanIDToJaegerProto(spanID pdata.SpanID) (model.SpanID, error) { - uSpanID := tracetranslator.SpanIDToUInt64(spanID) + uSpanID := idsutil.SpanIDToUInt64(spanID) if uSpanID == 0 { return model.SpanID(0), errZeroSpanID } diff --git a/translator/trace/zipkin/traces_to_zipkinv2.go b/translator/trace/zipkin/traces_to_zipkinv2.go index 74bd2e67993..d76d4fabb34 100644 --- a/translator/trace/zipkin/traces_to_zipkinv2.go +++ b/translator/trace/zipkin/traces_to_zipkinv2.go @@ -25,6 +25,7 @@ import ( zipkinmodel "github.com/openzipkin/zipkin-go/model" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -358,10 +359,10 @@ func isIPv6Address(ipStr string) bool { } func convertTraceID(t pdata.TraceID) zipkinmodel.TraceID { - h, l := tracetranslator.TraceIDToUInt64Pair(t) + h, l := idsutil.TraceIDToUInt64Pair(t) return zipkinmodel.TraceID{High: h, Low: l} } func convertSpanID(s pdata.SpanID) zipkinmodel.ID { - return zipkinmodel.ID(tracetranslator.SpanIDToUInt64(s)) + return zipkinmodel.ID(idsutil.SpanIDToUInt64(s)) } diff --git a/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go b/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go index cf7bdbf1451..46e5a695323 100644 --- a/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go +++ b/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go @@ -27,7 +27,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/zipkincore" "google.golang.org/protobuf/types/known/timestamppb" - tracetranslator "go.opentelemetry.io/collector/translator/trace" + idsutil "go.opentelemetry.io/collector/internal/idsutil" ) // v1ThriftBatchToOCProto converts Zipkin v1 spans to OC Proto. @@ -55,11 +55,11 @@ func zipkinV1ThriftToOCSpan(zSpan *zipkincore.Span) (*tracepb.Span, *annotationP // failures on the receivers in general are silent at this moment, so letting them // proceed for now. We should validate the traceID, spanID and parentID are good with // OC proto requirements. - traceID := tracetranslator.UInt64ToTraceID(uint64(traceIDHigh), uint64(zSpan.TraceID)).Bytes() - spanID := tracetranslator.UInt64ToSpanID(uint64(zSpan.ID)).Bytes() + traceID := idsutil.UInt64ToTraceID(uint64(traceIDHigh), uint64(zSpan.TraceID)).Bytes() + spanID := idsutil.UInt64ToSpanID(uint64(zSpan.ID)).Bytes() var parentID []byte if zSpan.ParentID != nil { - parentIDBytes := tracetranslator.UInt64ToSpanID(uint64(*zSpan.ParentID)).Bytes() + parentIDBytes := idsutil.UInt64ToSpanID(uint64(*zSpan.ParentID)).Bytes() parentID = parentIDBytes[:] } diff --git a/translator/trace/zipkin/zipkinv1_to_protospan.go b/translator/trace/zipkin/zipkinv1_to_protospan.go index bd8d95f154a..039cd7de098 100644 --- a/translator/trace/zipkin/zipkinv1_to_protospan.go +++ b/translator/trace/zipkin/zipkinv1_to_protospan.go @@ -28,6 +28,7 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" "go.opentelemetry.io/collector/consumer/pdata" + idsutil "go.opentelemetry.io/collector/internal/idsutil" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -414,7 +415,7 @@ func hexTraceIDToOCTraceID(hex string) ([]byte, error) { return nil, errHexTraceIDZero } - tidBytes := tracetranslator.UInt64ToTraceID(high, low).Bytes() + tidBytes := idsutil.UInt64ToTraceID(high, low).Bytes() return tidBytes[:], nil } @@ -433,7 +434,7 @@ func hexIDToOCID(hex string) ([]byte, error) { return nil, errHexIDZero } - idBytes := tracetranslator.UInt64ToSpanID(idValue).Bytes() + idBytes := idsutil.UInt64ToSpanID(idValue).Bytes() return idBytes[:], nil } diff --git a/translator/trace/zipkin/zipkinv2_to_traces.go b/translator/trace/zipkin/zipkinv2_to_traces.go index 2fcb6503be0..12d3daf18f3 100644 --- a/translator/trace/zipkin/zipkinv2_to_traces.go +++ b/translator/trace/zipkin/zipkinv2_to_traces.go @@ -28,6 +28,7 @@ import ( "go.opentelemetry.io/collector/consumer/pdata" "go.opentelemetry.io/collector/internal/data" otlptrace "go.opentelemetry.io/collector/internal/data/protogen/trace/v1" + idsutil "go.opentelemetry.io/collector/internal/idsutil" "go.opentelemetry.io/collector/internal/occonventions" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -123,15 +124,15 @@ func V2SpansToInternalTraces(zipkinSpans []*zipkinmodel.SpanModel, parseStringTa } func zSpanToInternal(zspan *zipkinmodel.SpanModel, tags map[string]string, dest pdata.Span, parseStringTags bool) error { - dest.SetTraceID(tracetranslator.UInt64ToTraceID(zspan.TraceID.High, zspan.TraceID.Low)) - dest.SetSpanID(tracetranslator.UInt64ToSpanID(uint64(zspan.ID))) + dest.SetTraceID(idsutil.UInt64ToTraceID(zspan.TraceID.High, zspan.TraceID.Low)) + dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(zspan.ID))) if value, ok := tags[tracetranslator.TagW3CTraceState]; ok { dest.SetTraceState(pdata.TraceState(value)) delete(tags, tracetranslator.TagW3CTraceState) } parentID := zspan.ParentID if parentID != nil && *parentID != zspan.ID { - dest.SetParentSpanID(tracetranslator.UInt64ToSpanID(uint64(*parentID))) + dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(*parentID))) } dest.SetName(zspan.Name) From d70a03d5cff5ecaa6acf7c4b291c968806968fdc Mon Sep 17 00:00:00 2001 From: Iris Song Date: Mon, 24 May 2021 09:11:05 -0700 Subject: [PATCH 2/6] revert changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01b7df79bda..ae6f21ce44d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,6 @@ ## 🛑 Breaking changes 🛑 - Remove unused logstest package (#3222) -- Move BigEndian helper functions in `tracetranslator` to an internal package.(#TBD) ## v0.27.0 Beta From f5ecb4ca0621459480e8e147e49e8f1ae5345a3a Mon Sep 17 00:00:00 2001 From: Iris Song Date: Mon, 24 May 2021 09:12:37 -0700 Subject: [PATCH 3/6] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ba07213dda..77bc3d28966 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Remove unused logstest package (#3222) - Introduce `AppSettings` instead of `Parameters` (#3163) +- Move BigEndian helper functions in `tracetranslator` to an internal package.(#TBD) ## v0.27.0 Beta From f45af5f167ef18485f4693cd3c3105dc94942925 Mon Sep 17 00:00:00 2001 From: Iris Song Date: Mon, 24 May 2021 10:47:35 -0700 Subject: [PATCH 4/6] Change to idutils and add doc.go --- .../big_endian_converter.go | 2 +- .../big_endian_converter_test.go | 2 +- internal/idutils/doc.go | 21 +++++++++++++++++++ .../probabilisticsampler_test.go | 8 +++---- .../trace/jaeger/jaegerproto_to_traces.go | 12 +++++------ .../jaeger/jaegerproto_to_traces_test.go | 6 +++--- .../trace/jaeger/jaegerthrift_to_traces.go | 12 +++++------ .../trace/jaeger/traces_to_jaegerproto.go | 6 +++--- translator/trace/zipkin/traces_to_zipkinv2.go | 6 +++--- .../zipkin/zipkinv1_thrift_to_protospan.go | 8 +++---- .../trace/zipkin/zipkinv1_to_protospan.go | 6 +++--- translator/trace/zipkin/zipkinv2_to_traces.go | 8 +++---- 12 files changed, 59 insertions(+), 38 deletions(-) rename internal/{idsutil => idutils}/big_endian_converter.go (99%) rename internal/{idsutil => idutils}/big_endian_converter_test.go (99%) create mode 100644 internal/idutils/doc.go diff --git a/internal/idsutil/big_endian_converter.go b/internal/idutils/big_endian_converter.go similarity index 99% rename from internal/idsutil/big_endian_converter.go rename to internal/idutils/big_endian_converter.go index 25ddb99a7dc..abc9d9bfc33 100644 --- a/internal/idsutil/big_endian_converter.go +++ b/internal/idutils/big_endian_converter.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idsutil +package idutils import ( "encoding/binary" diff --git a/internal/idsutil/big_endian_converter_test.go b/internal/idutils/big_endian_converter_test.go similarity index 99% rename from internal/idsutil/big_endian_converter_test.go rename to internal/idutils/big_endian_converter_test.go index 3f5d664977c..861110298c3 100644 --- a/internal/idsutil/big_endian_converter_test.go +++ b/internal/idutils/big_endian_converter_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idsutil +package idutils import ( "math" diff --git a/internal/idutils/doc.go b/internal/idutils/doc.go new file mode 100644 index 00000000000..1148ba201f0 --- /dev/null +++ b/internal/idutils/doc.go @@ -0,0 +1,21 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Package idutils provides a set of helper functions to convert ids. + +Functions in big_endian_converter.go help converting uint64 ids to TraceID +and SpanID using big endian, and vice versa. +*/ +package idutils // import "go.opentelemetry.io/collector/internal/idutils" diff --git a/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go b/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go index 6631033160c..f83d7998091 100644 --- a/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go +++ b/processor/probabilisticsamplerprocessor/probabilisticsampler_test.go @@ -27,7 +27,7 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/translator/conventions" ) @@ -437,7 +437,7 @@ func Test_hash(t *testing.T) { // collisions, but, of course it is possible that they happen, a different random source // should avoid that. r := rand.New(rand.NewSource(1)) - fullKey := idsutil.UInt64ToTraceID(r.Uint64(), r.Uint64()).Bytes() + fullKey := idutils.UInt64ToTraceID(r.Uint64(), r.Uint64()).Bytes() seen := make(map[uint32]bool) for i := 1; i <= len(fullKey); i++ { key := fullKey[:i] @@ -467,8 +467,8 @@ func genRandomTestData(numBatches, numTracesPerBatch int, serviceName string, re for k := 0; k < numTracesPerBatch; k++ { span := ils.Spans().At(k) - span.SetTraceID(idsutil.UInt64ToTraceID(r.Uint64(), r.Uint64())) - span.SetSpanID(idsutil.UInt64ToSpanID(r.Uint64())) + span.SetTraceID(idutils.UInt64ToTraceID(r.Uint64(), r.Uint64())) + span.SetSpanID(idutils.UInt64ToSpanID(r.Uint64())) attributes := make(map[string]pdata.AttributeValue) attributes[conventions.AttributeHTTPStatusCode] = pdata.NewAttributeValueInt(404) attributes[conventions.AttributeHTTPStatusText] = pdata.NewAttributeValueString("Not Found") diff --git a/translator/trace/jaeger/jaegerproto_to_traces.go b/translator/trace/jaeger/jaegerproto_to_traces.go index 7ab79c4ba55..1a465347443 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces.go +++ b/translator/trace/jaeger/jaegerproto_to_traces.go @@ -25,7 +25,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/jaeger" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/internal/occonventions" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -165,15 +165,15 @@ type instrumentationLibrary struct { func jSpanToInternal(span *model.Span) (pdata.Span, instrumentationLibrary) { dest := pdata.NewSpan() - dest.SetTraceID(idsutil.UInt64ToTraceID(span.TraceID.High, span.TraceID.Low)) - dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(span.SpanID))) + dest.SetTraceID(idutils.UInt64ToTraceID(span.TraceID.High, span.TraceID.Low)) + dest.SetSpanID(idutils.UInt64ToSpanID(uint64(span.SpanID))) dest.SetName(span.OperationName) dest.SetStartTimestamp(pdata.TimestampFromTime(span.StartTime)) dest.SetEndTimestamp(pdata.TimestampFromTime(span.StartTime.Add(span.Duration))) parentSpanID := span.ParentSpanID() if parentSpanID != model.SpanID(0) { - dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(parentSpanID))) + dest.SetParentSpanID(idutils.UInt64ToSpanID(uint64(parentSpanID))) } attrs := dest.Attributes() @@ -358,8 +358,8 @@ func jReferencesToSpanLinks(refs []model.SpanRef, excludeParentID model.SpanID, continue } - link.SetTraceID(idsutil.UInt64ToTraceID(ref.TraceID.High, ref.TraceID.Low)) - link.SetSpanID(idsutil.UInt64ToSpanID(uint64(ref.SpanID))) + link.SetTraceID(idutils.UInt64ToTraceID(ref.TraceID.High, ref.TraceID.Low)) + link.SetSpanID(idutils.UInt64ToSpanID(uint64(ref.SpanID))) i++ } diff --git a/translator/trace/jaeger/jaegerproto_to_traces_test.go b/translator/trace/jaeger/jaegerproto_to_traces_test.go index 4181c28d386..2175ad36738 100644 --- a/translator/trace/jaeger/jaegerproto_to_traces_test.go +++ b/translator/trace/jaeger/jaegerproto_to_traces_test.go @@ -26,7 +26,7 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/internal/testdata" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -844,8 +844,8 @@ func generateTraceDataTwoSpansFromTwoLibraries() pdata.Traces { rs0ils0.InstrumentationLibrary().SetName("library1") rs0ils0.InstrumentationLibrary().SetVersion("0.42.0") span1 := rs0ils0.Spans().AppendEmpty() - span1.SetTraceID(idsutil.UInt64ToTraceID(0, 0)) - span1.SetSpanID(idsutil.UInt64ToSpanID(0)) + span1.SetTraceID(idutils.UInt64ToTraceID(0, 0)) + span1.SetSpanID(idutils.UInt64ToSpanID(0)) span1.SetName("operation1") span1.SetStartTimestamp(testSpanStartTimestamp) span1.SetEndTimestamp(testSpanEndTimestamp) diff --git a/translator/trace/jaeger/jaegerthrift_to_traces.go b/translator/trace/jaeger/jaegerthrift_to_traces.go index db7814b2e16..2367541ba6c 100644 --- a/translator/trace/jaeger/jaegerthrift_to_traces.go +++ b/translator/trace/jaeger/jaegerthrift_to_traces.go @@ -22,7 +22,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/jaeger" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -96,15 +96,15 @@ func jThriftSpansToInternal(spans []*jaeger.Span, dest pdata.SpanSlice) { } func jThriftSpanToInternal(span *jaeger.Span, dest pdata.Span) { - dest.SetTraceID(idsutil.UInt64ToTraceID(uint64(span.TraceIdHigh), uint64(span.TraceIdLow))) - dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(span.SpanId))) + dest.SetTraceID(idutils.UInt64ToTraceID(uint64(span.TraceIdHigh), uint64(span.TraceIdLow))) + dest.SetSpanID(idutils.UInt64ToSpanID(uint64(span.SpanId))) dest.SetName(span.OperationName) dest.SetStartTimestamp(microsecondsToUnixNano(span.StartTime)) dest.SetEndTimestamp(microsecondsToUnixNano(span.StartTime + span.Duration)) parentSpanID := span.ParentSpanId if parentSpanID != 0 { - dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(parentSpanID))) + dest.SetParentSpanID(idutils.UInt64ToSpanID(uint64(parentSpanID))) } attrs := dest.Attributes() @@ -185,8 +185,8 @@ func jThriftReferencesToSpanLinks(refs []*jaeger.SpanRef, excludeParentID int64, continue } - link.SetTraceID(idsutil.UInt64ToTraceID(uint64(ref.TraceIdHigh), uint64(ref.TraceIdLow))) - link.SetSpanID(idsutil.UInt64ToSpanID(uint64(ref.SpanId))) + link.SetTraceID(idutils.UInt64ToTraceID(uint64(ref.TraceIdHigh), uint64(ref.TraceIdLow))) + link.SetSpanID(idutils.UInt64ToSpanID(uint64(ref.SpanId))) i++ } diff --git a/translator/trace/jaeger/traces_to_jaegerproto.go b/translator/trace/jaeger/traces_to_jaegerproto.go index 52ad258442d..11350e106ef 100644 --- a/translator/trace/jaeger/traces_to_jaegerproto.go +++ b/translator/trace/jaeger/traces_to_jaegerproto.go @@ -20,7 +20,7 @@ import ( "github.com/jaegertracing/jaeger/model" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -253,7 +253,7 @@ func getJaegerProtoSpanTags(span pdata.Span, instrumentationLibrary pdata.Instru } func traceIDToJaegerProto(traceID pdata.TraceID) (model.TraceID, error) { - traceIDHigh, traceIDLow := idsutil.TraceIDToUInt64Pair(traceID) + traceIDHigh, traceIDLow := idutils.TraceIDToUInt64Pair(traceID) if traceIDLow == 0 && traceIDHigh == 0 { return model.TraceID{}, errZeroTraceID } @@ -264,7 +264,7 @@ func traceIDToJaegerProto(traceID pdata.TraceID) (model.TraceID, error) { } func spanIDToJaegerProto(spanID pdata.SpanID) (model.SpanID, error) { - uSpanID := idsutil.SpanIDToUInt64(spanID) + uSpanID := idutils.SpanIDToUInt64(spanID) if uSpanID == 0 { return model.SpanID(0), errZeroSpanID } diff --git a/translator/trace/zipkin/traces_to_zipkinv2.go b/translator/trace/zipkin/traces_to_zipkinv2.go index d76d4fabb34..02f57ac9a70 100644 --- a/translator/trace/zipkin/traces_to_zipkinv2.go +++ b/translator/trace/zipkin/traces_to_zipkinv2.go @@ -25,7 +25,7 @@ import ( zipkinmodel "github.com/openzipkin/zipkin-go/model" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -359,10 +359,10 @@ func isIPv6Address(ipStr string) bool { } func convertTraceID(t pdata.TraceID) zipkinmodel.TraceID { - h, l := idsutil.TraceIDToUInt64Pair(t) + h, l := idutils.TraceIDToUInt64Pair(t) return zipkinmodel.TraceID{High: h, Low: l} } func convertSpanID(s pdata.SpanID) zipkinmodel.ID { - return zipkinmodel.ID(idsutil.SpanIDToUInt64(s)) + return zipkinmodel.ID(idutils.SpanIDToUInt64(s)) } diff --git a/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go b/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go index 46e5a695323..2e588560bbd 100644 --- a/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go +++ b/translator/trace/zipkin/zipkinv1_thrift_to_protospan.go @@ -27,7 +27,7 @@ import ( "github.com/jaegertracing/jaeger/thrift-gen/zipkincore" "google.golang.org/protobuf/types/known/timestamppb" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" ) // v1ThriftBatchToOCProto converts Zipkin v1 spans to OC Proto. @@ -55,11 +55,11 @@ func zipkinV1ThriftToOCSpan(zSpan *zipkincore.Span) (*tracepb.Span, *annotationP // failures on the receivers in general are silent at this moment, so letting them // proceed for now. We should validate the traceID, spanID and parentID are good with // OC proto requirements. - traceID := idsutil.UInt64ToTraceID(uint64(traceIDHigh), uint64(zSpan.TraceID)).Bytes() - spanID := idsutil.UInt64ToSpanID(uint64(zSpan.ID)).Bytes() + traceID := idutils.UInt64ToTraceID(uint64(traceIDHigh), uint64(zSpan.TraceID)).Bytes() + spanID := idutils.UInt64ToSpanID(uint64(zSpan.ID)).Bytes() var parentID []byte if zSpan.ParentID != nil { - parentIDBytes := idsutil.UInt64ToSpanID(uint64(*zSpan.ParentID)).Bytes() + parentIDBytes := idutils.UInt64ToSpanID(uint64(*zSpan.ParentID)).Bytes() parentID = parentIDBytes[:] } diff --git a/translator/trace/zipkin/zipkinv1_to_protospan.go b/translator/trace/zipkin/zipkinv1_to_protospan.go index 039cd7de098..38baae5db9c 100644 --- a/translator/trace/zipkin/zipkinv1_to_protospan.go +++ b/translator/trace/zipkin/zipkinv1_to_protospan.go @@ -28,7 +28,7 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" "go.opentelemetry.io/collector/consumer/pdata" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" tracetranslator "go.opentelemetry.io/collector/translator/trace" ) @@ -415,7 +415,7 @@ func hexTraceIDToOCTraceID(hex string) ([]byte, error) { return nil, errHexTraceIDZero } - tidBytes := idsutil.UInt64ToTraceID(high, low).Bytes() + tidBytes := idutils.UInt64ToTraceID(high, low).Bytes() return tidBytes[:], nil } @@ -434,7 +434,7 @@ func hexIDToOCID(hex string) ([]byte, error) { return nil, errHexIDZero } - idBytes := idsutil.UInt64ToSpanID(idValue).Bytes() + idBytes := idutils.UInt64ToSpanID(idValue).Bytes() return idBytes[:], nil } diff --git a/translator/trace/zipkin/zipkinv2_to_traces.go b/translator/trace/zipkin/zipkinv2_to_traces.go index 12d3daf18f3..7ee7414a9e0 100644 --- a/translator/trace/zipkin/zipkinv2_to_traces.go +++ b/translator/trace/zipkin/zipkinv2_to_traces.go @@ -28,7 +28,7 @@ import ( "go.opentelemetry.io/collector/consumer/pdata" "go.opentelemetry.io/collector/internal/data" otlptrace "go.opentelemetry.io/collector/internal/data/protogen/trace/v1" - idsutil "go.opentelemetry.io/collector/internal/idsutil" + idutils "go.opentelemetry.io/collector/internal/idutils" "go.opentelemetry.io/collector/internal/occonventions" "go.opentelemetry.io/collector/translator/conventions" tracetranslator "go.opentelemetry.io/collector/translator/trace" @@ -124,15 +124,15 @@ func V2SpansToInternalTraces(zipkinSpans []*zipkinmodel.SpanModel, parseStringTa } func zSpanToInternal(zspan *zipkinmodel.SpanModel, tags map[string]string, dest pdata.Span, parseStringTags bool) error { - dest.SetTraceID(idsutil.UInt64ToTraceID(zspan.TraceID.High, zspan.TraceID.Low)) - dest.SetSpanID(idsutil.UInt64ToSpanID(uint64(zspan.ID))) + dest.SetTraceID(idutils.UInt64ToTraceID(zspan.TraceID.High, zspan.TraceID.Low)) + dest.SetSpanID(idutils.UInt64ToSpanID(uint64(zspan.ID))) if value, ok := tags[tracetranslator.TagW3CTraceState]; ok { dest.SetTraceState(pdata.TraceState(value)) delete(tags, tracetranslator.TagW3CTraceState) } parentID := zspan.ParentID if parentID != nil && *parentID != zspan.ID { - dest.SetParentSpanID(idsutil.UInt64ToSpanID(uint64(*parentID))) + dest.SetParentSpanID(idutils.UInt64ToSpanID(uint64(*parentID))) } dest.SetName(zspan.Name) From 0a2a598c5077243915d1d93cf5db68667121c6ce Mon Sep 17 00:00:00 2001 From: Iris Song <73505006+IrisTuntun@users.noreply.github.com> Date: Mon, 24 May 2021 17:54:19 -0700 Subject: [PATCH 5/6] Update internal/idutils/doc.go Co-authored-by: Anthony Mirabella --- internal/idutils/doc.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/idutils/doc.go b/internal/idutils/doc.go index 1148ba201f0..6440859283b 100644 --- a/internal/idutils/doc.go +++ b/internal/idutils/doc.go @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -/* -Package idutils provides a set of helper functions to convert ids. - -Functions in big_endian_converter.go help converting uint64 ids to TraceID -and SpanID using big endian, and vice versa. -*/ +// Package idutils provides a set of helper functions to convert ids. +// +// Functions in big_endian_converter.go help converting uint64 ids to TraceID +// and SpanID using big endian, and vice versa. package idutils // import "go.opentelemetry.io/collector/internal/idutils" From 900e762081a4b31ba831971f6699130d138ace58 Mon Sep 17 00:00:00 2001 From: Iris Song <73505006+IrisTuntun@users.noreply.github.com> Date: Tue, 25 May 2021 12:38:36 -0700 Subject: [PATCH 6/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2806ac1cbe7..eeceba75642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ - Remove unused logstest package (#3222) - Introduce `AppSettings` instead of `Parameters` (#3163) -- Move BigEndian helper functions in `tracetranslator` to an internal package.(#TBD) +- Move BigEndian helper functions in `tracetranslator` to an internal package.(#3298) ## 💡 Enhancements 💡