diff --git a/bridge/opentracing/test/bridge_grpc_test.go b/bridge/opentracing/bridge_grpc_test.go similarity index 92% rename from bridge/opentracing/test/bridge_grpc_test.go rename to bridge/opentracing/bridge_grpc_test.go index 99ce2d6b8..d1b234b7f 100644 --- a/bridge/opentracing/test/bridge_grpc_test.go +++ b/bridge/opentracing/bridge_grpc_test.go @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package test +package opentracing import ( "context" @@ -17,8 +17,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - ototel "go.opentelemetry.io/otel/bridge/opentracing" - "go.opentelemetry.io/otel/bridge/opentracing/internal" "go.opentelemetry.io/otel/propagation" ) @@ -56,9 +54,8 @@ func startTestGRPCServer(t *testing.T, tracer ot.Tracer) (*grpc.Server, net.Addr } func TestBridgeTracer_ExtractAndInject_gRPC(t *testing.T) { - tracer := internal.NewMockTracer() - - bridge := ototel.NewBridgeTracer() + tracer := newMockTracer() + bridge := NewBridgeTracer() bridge.SetOpenTelemetryTracer(tracer) bridge.SetTextMapPropagator(propagation.TraceContext{}) diff --git a/bridge/opentracing/bridge_test.go b/bridge/opentracing/bridge_test.go index c07df4f6b..774caf27a 100644 --- a/bridge/opentracing/bridge_test.go +++ b/bridge/opentracing/bridge_test.go @@ -20,7 +20,6 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/bridge/opentracing/internal" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" ) @@ -467,7 +466,7 @@ func Test_otTagToOTelAttr(t *testing.T) { } func TestBridgeSpan_SetTag(t *testing.T) { - tracer := internal.NewMockTracer() + tracer := newMockTracer() b, _ := NewTracerPair(tracer) testCases := []struct { @@ -513,7 +512,7 @@ func TestBridgeSpan_SetTag(t *testing.T) { span := b.StartSpan("test") span.SetTag(tc.tagKey, tc.tagValue) - mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan) + mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan) if tc.expected != nil { assert.Contains(t, mockSpan.Attributes, tc.expected) } else { @@ -524,7 +523,7 @@ func TestBridgeSpan_SetTag(t *testing.T) { } func Test_otTagsToOTelAttributesKindAndError(t *testing.T) { - tracer := internal.NewMockTracer() + tracer := newMockTracer() sc := &bridgeSpanContext{} testCases := []struct { @@ -559,7 +558,7 @@ func Test_otTagsToOTelAttributesKindAndError(t *testing.T) { b, _ := NewTracerPair(tracer) s := b.StartSpan(tc.name, tc.opt...) - assert.Equal(t, tc.expected, s.(*bridgeSpan).otelSpan.(*internal.MockSpan).SpanKind) + assert.Equal(t, tc.expected, s.(*bridgeSpan).otelSpan.(*mockSpan).SpanKind) }) } } @@ -584,7 +583,7 @@ func TestBridge_SpanContext_IsSampled(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - tracer := internal.NewMockTracer() + tracer := newMockTracer() tracer.TraceFlags = tc.flags b, _ := NewTracerPair(tracer) @@ -688,7 +687,7 @@ func TestBridgeCarrierBaggagePropagation(t *testing.T) { for _, c := range carriers { for _, tc := range testCases { t.Run(fmt.Sprintf("%s %s", c.name, tc.name), func(t *testing.T) { - mockOtelTracer := internal.NewMockTracer() + mockOtelTracer := newMockTracer() b, _ := NewTracerPair(mockOtelTracer) b.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator( propagation.TraceContext{}, @@ -881,12 +880,12 @@ func TestBridgeSpan_LogFields(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - tracer := internal.NewMockTracer() + tracer := newMockTracer() b, _ := NewTracerPair(tracer) span := b.StartSpan("test") span.LogFields(tc.field) - mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan) + mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan) event := mockSpan.Events[0] assert.Contains(t, event.Attributes, tc.expected) }) @@ -983,11 +982,11 @@ func TestBridgeSpan_LogKV(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - tracer := internal.NewMockTracer() + tracer := newMockTracer() b, _ := NewTracerPair(tracer) span := b.StartSpan("test") span.LogKV(tc.kv[0], tc.kv[1]) - mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan) + mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan) event := mockSpan.Events[0] assert.Contains(t, event.Attributes, tc.expected) }) diff --git a/bridge/opentracing/go.mod b/bridge/opentracing/go.mod index 1c1441fbb..791702582 100644 --- a/bridge/opentracing/go.mod +++ b/bridge/opentracing/go.mod @@ -7,19 +7,28 @@ replace go.opentelemetry.io/otel => ../.. replace go.opentelemetry.io/otel/trace => ../../trace require ( + github.com/opentracing-contrib/go-grpc v0.1.1 + github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 github.com/opentracing/opentracing-go v1.2.0 github.com/stretchr/testify v1.10.0 go.opentelemetry.io/otel v1.36.0 go.opentelemetry.io/otel/trace v1.36.0 + google.golang.org/grpc v1.73.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/otel/metric v1.36.0 // indirect + golang.org/x/net v0.38.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/text v0.23.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/bridge/opentracing/go.sum b/bridge/opentracing/go.sum index 913aad5cd..da269ee86 100644 --- a/bridge/opentracing/go.sum +++ b/bridge/opentracing/go.sum @@ -6,12 +6,20 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/opentracing-contrib/go-grpc v0.1.1 h1:Ws7IN1zyiL1DFqKQPhRXuKe5pLYzMfdxnC1qtajE2PE= +github.com/opentracing-contrib/go-grpc v0.1.1/go.mod h1:Nu6sz+4zzgxXu8rvKfnwjBEmHsuhTigxRwV2RhELrS8= +github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 h1:HGsK6KQUCjUB/wh0h7kxtNWu8AMmiGTFMiv9s9JrDSs= +github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032/go.mod h1:lGUfQ7UdqHsl7maAepZ2isMI1odCvxR62U2m/Jfi0oQ= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -24,6 +32,22 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/bridge/opentracing/internal/doc.go b/bridge/opentracing/internal/doc.go deleted file mode 100644 index 7c89cb937..000000000 --- a/bridge/opentracing/internal/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Package internal provides internal functionality for the opentracing package. -package internal // import "go.opentelemetry.io/otel/bridge/opentracing/internal" diff --git a/bridge/opentracing/mix_test.go b/bridge/opentracing/mix_test.go index 45dce83af..b484a1864 100644 --- a/bridge/opentracing/mix_test.go +++ b/bridge/opentracing/mix_test.go @@ -13,16 +13,15 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/baggage" - "go.opentelemetry.io/otel/bridge/opentracing/internal" "go.opentelemetry.io/otel/trace" ) type mixedAPIsTestCase struct { desc string - setup func(*testing.T, *internal.MockTracer) + setup func(*testing.T, *mockTracer) run func(*testing.T, context.Context) - check func(*testing.T, *internal.MockTracer) + check func(*testing.T, *mockTracer) } func getMixedAPIsTestCases() []mixedAPIsTestCase { @@ -99,7 +98,7 @@ func getMixedAPIsTestCases() []mixedAPIsTestCase { func TestMixedAPIs(t *testing.T) { for idx, tc := range getMixedAPIsTestCases() { t.Logf("Running test case %d: %s", idx, tc.desc) - mockOtelTracer := internal.NewMockTracer() + mockOtelTracer := newMockTracer() ctx, otTracer, otelProvider := NewTracerPairWithContext(context.Background(), mockOtelTracer) otTracer.SetWarningHandler(func(msg string) { t.Log(msg) @@ -128,12 +127,12 @@ func newSimpleTest() *simpleTest { } } -func (st *simpleTest) setup(t *testing.T, tracer *internal.MockTracer) { +func (st *simpleTest) setup(t *testing.T, tracer *mockTracer) { tracer.SpareTraceIDs = append(tracer.SpareTraceIDs, st.traceID) tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, st.spanIDs...) } -func (st *simpleTest) check(t *testing.T, tracer *internal.MockTracer) { +func (st *simpleTest) check(t *testing.T, tracer *mockTracer) { checkTraceAndSpans(t, tracer, st.traceID, st.spanIDs) } @@ -166,7 +165,7 @@ func newCurrentActiveSpanTest() *currentActiveSpanTest { } } -func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *internal.MockTracer) { +func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *mockTracer) { tracer.SpareTraceIDs = append(tracer.SpareTraceIDs, cast.traceID) tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, cast.spanIDs...) @@ -174,7 +173,7 @@ func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *internal.MockTrac cast.recordedActiveOTSpanIDs = nil } -func (cast *currentActiveSpanTest) check(t *testing.T, tracer *internal.MockTracer) { +func (cast *currentActiveSpanTest) check(t *testing.T, tracer *mockTracer) { checkTraceAndSpans(t, tracer, cast.traceID, cast.spanIDs) if len(cast.recordedCurrentOtelSpanIDs) != len(cast.spanIDs) { t.Errorf( @@ -236,7 +235,7 @@ func (cast *currentActiveSpanTest) recordSpans(t *testing.T, ctx context.Context // context intact test type contextIntactTest struct { - contextKeyValues []internal.MockContextKeyValue + contextKeyValues []mockContextKeyValue recordedContextValues []interface{} recordIdx int @@ -256,7 +255,7 @@ type coin3Value struct{} func newContextIntactTest() *contextIntactTest { return &contextIntactTest{ - contextKeyValues: []internal.MockContextKeyValue{ + contextKeyValues: []mockContextKeyValue{ { Key: coin1Key{}, Value: coin1Value{}, @@ -273,14 +272,14 @@ func newContextIntactTest() *contextIntactTest { } } -func (coin *contextIntactTest) setup(t *testing.T, tracer *internal.MockTracer) { +func (coin *contextIntactTest) setup(t *testing.T, tracer *mockTracer) { tracer.SpareContextKeyValues = append(tracer.SpareContextKeyValues, coin.contextKeyValues...) coin.recordedContextValues = nil coin.recordIdx = 0 } -func (coin *contextIntactTest) check(t *testing.T, tracer *internal.MockTracer) { +func (coin *contextIntactTest) check(t *testing.T, tracer *mockTracer) { if len(coin.recordedContextValues) != len(coin.contextKeyValues) { t.Errorf( "Expected to have %d recorded context values, got %d", @@ -352,12 +351,12 @@ func newBaggageItemsPreservationTest() *baggageItemsPreservationTest { } } -func (bip *baggageItemsPreservationTest) setup(t *testing.T, tracer *internal.MockTracer) { +func (bip *baggageItemsPreservationTest) setup(t *testing.T, tracer *mockTracer) { bip.step = 0 bip.recordedBaggage = nil } -func (bip *baggageItemsPreservationTest) check(t *testing.T, tracer *internal.MockTracer) { +func (bip *baggageItemsPreservationTest) check(t *testing.T, tracer *mockTracer) { if len(bip.recordedBaggage) != len(bip.baggageItems) { t.Errorf("Expected %d recordings, got %d", len(bip.baggageItems), len(bip.recordedBaggage)) } @@ -450,13 +449,13 @@ func newBaggageInteroperationTest() *baggageInteroperationTest { } } -func (bio *baggageInteroperationTest) setup(t *testing.T, tracer *internal.MockTracer) { +func (bio *baggageInteroperationTest) setup(t *testing.T, tracer *mockTracer) { bio.step = 0 bio.recordedOTBaggage = nil bio.recordedOtelBaggage = nil } -func (bio *baggageInteroperationTest) check(t *testing.T, tracer *internal.MockTracer) { +func (bio *baggageInteroperationTest) check(t *testing.T, tracer *mockTracer) { checkBIORecording(t, "OT", bio.baggageItems, bio.recordedOTBaggage) checkBIORecording(t, "Otel", bio.baggageItems, bio.recordedOtelBaggage) } @@ -579,7 +578,7 @@ func generateBaggageKeys(key string) (otKey, otelKey string) { func checkTraceAndSpans( t *testing.T, - tracer *internal.MockTracer, + tracer *mockTracer, expectedTraceID trace.TraceID, expectedSpanIDs []trace.SpanID, ) { diff --git a/bridge/opentracing/internal/mock.go b/bridge/opentracing/mock.go similarity index 67% rename from bridge/opentracing/internal/mock.go rename to bridge/opentracing/mock.go index 5ce9859a7..6ac7c7bd3 100644 --- a/bridge/opentracing/internal/mock.go +++ b/bridge/opentracing/mock.go @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package internal // import "go.opentelemetry.io/otel/bridge/opentracing/internal" +package opentracing // import "go.opentelemetry.io/otel/bridge/opentracing" import ( "context" @@ -21,26 +21,24 @@ import ( //nolint:revive // ignoring missing comments for unexported global variables in an internal package. var ( - ComponentKey = attribute.Key("component") - ServiceKey = attribute.Key("service") - StatusCodeKey = attribute.Key("status.code") - StatusMessageKey = attribute.Key("status.message") - ErrorKey = attribute.Key("error") - NameKey = attribute.Key("name") + statusCodeKey = attribute.Key("status.code") + statusMessageKey = attribute.Key("status.message") + errorKey = attribute.Key("error") + nameKey = attribute.Key("name") ) -type MockContextKeyValue struct { +type mockContextKeyValue struct { Key interface{} Value interface{} } -type MockTracer struct { +type mockTracer struct { embedded.Tracer - FinishedSpans []*MockSpan + FinishedSpans []*mockSpan SpareTraceIDs []trace.TraceID SpareSpanIDs []trace.SpanID - SpareContextKeyValues []MockContextKeyValue + SpareContextKeyValues []mockContextKeyValue TraceFlags trace.TraceFlags randLock sync.Mutex @@ -48,14 +46,14 @@ type MockTracer struct { } var ( - _ trace.Tracer = &MockTracer{} - _ migration.DeferredContextSetupTracerExtension = &MockTracer{} + _ trace.Tracer = &mockTracer{} + _ migration.DeferredContextSetupTracerExtension = &mockTracer{} ) -func NewMockTracer() *MockTracer { +func newMockTracer() *mockTracer { u := rand.Uint32() seed := [32]byte{byte(u), byte(u >> 8), byte(u >> 16), byte(u >> 24)} - return &MockTracer{ + return &mockTracer{ FinishedSpans: nil, SpareTraceIDs: nil, SpareSpanIDs: nil, @@ -65,7 +63,8 @@ func NewMockTracer() *MockTracer { } } -func (t *MockTracer) Start( +// Start returns a new trace span with the given name and options. +func (t *mockTracer) Start( ctx context.Context, name string, opts ...trace.SpanStartOption, @@ -80,7 +79,7 @@ func (t *MockTracer) Start( SpanID: t.getSpanID(), TraceFlags: t.TraceFlags, }) - span := &MockSpan{ + span := &mockSpan{ mockTracer: t, officialTracer: t, spanContext: spanContext, @@ -98,10 +97,10 @@ func (t *MockTracer) Start( return ctx, span } -func (t *MockTracer) addSpareContextValue(ctx context.Context) context.Context { +func (t *mockTracer) addSpareContextValue(ctx context.Context) context.Context { if len(t.SpareContextKeyValues) > 0 { pair := t.SpareContextKeyValues[0] - t.SpareContextKeyValues[0] = MockContextKeyValue{} + t.SpareContextKeyValues[0] = mockContextKeyValue{} t.SpareContextKeyValues = t.SpareContextKeyValues[1:] if len(t.SpareContextKeyValues) == 0 { t.SpareContextKeyValues = nil @@ -111,7 +110,7 @@ func (t *MockTracer) addSpareContextValue(ctx context.Context) context.Context { return ctx } -func (t *MockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) trace.TraceID { +func (t *mockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) trace.TraceID { if parent := t.getParentSpanContext(ctx, config); parent.IsValid() { return parent.TraceID() } @@ -126,21 +125,21 @@ func (t *MockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) t return t.getRandTraceID() } -func (t *MockTracer) getParentSpanID(ctx context.Context, config *trace.SpanConfig) trace.SpanID { +func (t *mockTracer) getParentSpanID(ctx context.Context, config *trace.SpanConfig) trace.SpanID { if parent := t.getParentSpanContext(ctx, config); parent.IsValid() { return parent.SpanID() } return trace.SpanID{} } -func (t *MockTracer) getParentSpanContext(ctx context.Context, config *trace.SpanConfig) trace.SpanContext { +func (t *mockTracer) getParentSpanContext(ctx context.Context, config *trace.SpanConfig) trace.SpanContext { if !config.NewRoot() { return trace.SpanContextFromContext(ctx) } return trace.SpanContext{} } -func (t *MockTracer) getSpanID() trace.SpanID { +func (t *mockTracer) getSpanID() trace.SpanID { if len(t.SpareSpanIDs) > 0 { spanID := t.SpareSpanIDs[0] t.SpareSpanIDs = t.SpareSpanIDs[1:] @@ -152,7 +151,7 @@ func (t *MockTracer) getSpanID() trace.SpanID { return t.getRandSpanID() } -func (t *MockTracer) getRandSpanID() trace.SpanID { +func (t *mockTracer) getRandSpanID() trace.SpanID { t.randLock.Lock() defer t.randLock.Unlock() @@ -162,7 +161,7 @@ func (t *MockTracer) getRandSpanID() trace.SpanID { return sid } -func (t *MockTracer) getRandTraceID() trace.TraceID { +func (t *mockTracer) getRandTraceID() trace.TraceID { t.randLock.Lock() defer t.randLock.Unlock() @@ -172,25 +171,26 @@ func (t *MockTracer) getRandTraceID() trace.TraceID { return tid } -func (t *MockTracer) DeferredContextSetupHook(ctx context.Context, span trace.Span) context.Context { +// DeferredContextSetupHook implements the DeferredContextSetupTracerExtension interface. +func (t *mockTracer) DeferredContextSetupHook(ctx context.Context, span trace.Span) context.Context { return t.addSpareContextValue(ctx) } -type MockEvent struct { +type mockEvent struct { Timestamp time.Time Name string Attributes []attribute.KeyValue } -type MockLink struct { +type mockLink struct { SpanContext trace.SpanContext Attributes []attribute.KeyValue } -type MockSpan struct { +type mockSpan struct { embedded.Span - mockTracer *MockTracer + mockTracer *mockTracer officialTracer trace.Tracer spanContext trace.SpanContext SpanKind trace.SpanKind @@ -200,40 +200,40 @@ type MockSpan struct { StartTime time.Time EndTime time.Time ParentSpanID trace.SpanID - Events []MockEvent - Links []MockLink + Events []mockEvent + Links []mockLink } var ( - _ trace.Span = &MockSpan{} - _ migration.OverrideTracerSpanExtension = &MockSpan{} + _ trace.Span = &mockSpan{} + _ migration.OverrideTracerSpanExtension = &mockSpan{} ) -func (s *MockSpan) SpanContext() trace.SpanContext { +func (s *mockSpan) SpanContext() trace.SpanContext { return s.spanContext } -func (s *MockSpan) IsRecording() bool { +func (s *mockSpan) IsRecording() bool { return s.recording } -func (s *MockSpan) SetStatus(code codes.Code, msg string) { - s.SetAttributes(StatusCodeKey.Int(int(code)), StatusMessageKey.String(msg)) +func (s *mockSpan) SetStatus(code codes.Code, msg string) { + s.SetAttributes(statusCodeKey.Int(int(code)), statusMessageKey.String(msg)) } -func (s *MockSpan) SetName(name string) { - s.SetAttributes(NameKey.String(name)) +func (s *mockSpan) SetName(name string) { + s.SetAttributes(nameKey.String(name)) } -func (s *MockSpan) SetError(v bool) { - s.SetAttributes(ErrorKey.Bool(v)) +func (s *mockSpan) SetError(v bool) { + s.SetAttributes(errorKey.Bool(v)) } -func (s *MockSpan) SetAttributes(attributes ...attribute.KeyValue) { +func (s *mockSpan) SetAttributes(attributes ...attribute.KeyValue) { s.applyUpdate(attributes) } -func (s *MockSpan) applyUpdate(update []attribute.KeyValue) { +func (s *mockSpan) applyUpdate(update []attribute.KeyValue) { updateM := make(map[attribute.Key]attribute.Value, len(update)) for _, kv := range update { updateM[kv.Key] = kv.Value @@ -255,7 +255,7 @@ func (s *MockSpan) applyUpdate(update []attribute.KeyValue) { } } -func (s *MockSpan) End(options ...trace.SpanEndOption) { +func (s *mockSpan) End(options ...trace.SpanEndOption) { if !s.EndTime.IsZero() { return // already finished } @@ -268,7 +268,7 @@ func (s *MockSpan) End(options ...trace.SpanEndOption) { s.mockTracer.FinishedSpans = append(s.mockTracer.FinishedSpans, s) } -func (s *MockSpan) RecordError(err error, opts ...trace.EventOption) { +func (s *mockSpan) RecordError(err error, opts ...trace.EventOption) { if err == nil { return // no-op on nil error } @@ -285,28 +285,28 @@ func (s *MockSpan) RecordError(err error, opts ...trace.EventOption) { s.AddEvent(semconv.ExceptionEventName, opts...) } -func (s *MockSpan) Tracer() trace.Tracer { +func (s *mockSpan) Tracer() trace.Tracer { return s.officialTracer } -func (s *MockSpan) AddEvent(name string, o ...trace.EventOption) { +func (s *mockSpan) AddEvent(name string, o ...trace.EventOption) { c := trace.NewEventConfig(o...) - s.Events = append(s.Events, MockEvent{ + s.Events = append(s.Events, mockEvent{ Timestamp: c.Timestamp(), Name: name, Attributes: c.Attributes(), }) } -func (s *MockSpan) AddLink(link trace.Link) { - s.Links = append(s.Links, MockLink{ +func (s *mockSpan) AddLink(link trace.Link) { + s.Links = append(s.Links, mockLink{ SpanContext: link.SpanContext, Attributes: link.Attributes, }) } -func (s *MockSpan) OverrideTracer(tracer trace.Tracer) { +func (s *mockSpan) OverrideTracer(tracer trace.Tracer) { s.officialTracer = tracer } -func (s *MockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() } +func (s *mockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() } diff --git a/bridge/opentracing/provider_test.go b/bridge/opentracing/provider_test.go index f3b616e2a..b8762246f 100644 --- a/bridge/opentracing/provider_test.go +++ b/bridge/opentracing/provider_test.go @@ -7,14 +7,13 @@ import ( "testing" "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/bridge/opentracing/internal" "go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace/embedded" ) type namedMockTracer struct { name string - *internal.MockTracer + *mockTracer } type namedMockTracerProvider struct{ embedded.TracerProvider } @@ -25,7 +24,7 @@ var _ trace.TracerProvider = (*namedMockTracerProvider)(nil) func (p *namedMockTracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer { return &namedMockTracer{ name: name, - MockTracer: internal.NewMockTracer(), + mockTracer: newMockTracer(), } } diff --git a/bridge/opentracing/test/go.mod b/bridge/opentracing/test/go.mod deleted file mode 100644 index 3012b735a..000000000 --- a/bridge/opentracing/test/go.mod +++ /dev/null @@ -1,38 +0,0 @@ -module go.opentelemetry.io/otel/bridge/opentracing/test - -go 1.23.0 - -replace go.opentelemetry.io/otel => ../../.. - -replace go.opentelemetry.io/otel/bridge/opentracing => ../ - -replace go.opentelemetry.io/otel/trace => ../../../trace - -require ( - github.com/opentracing-contrib/go-grpc v0.1.1 - github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 - github.com/opentracing/opentracing-go v1.2.0 - github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/otel v1.36.0 - go.opentelemetry.io/otel/bridge/opentracing v1.36.0 - google.golang.org/grpc v1.73.0 -) - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.3 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel/metric v1.36.0 // indirect - go.opentelemetry.io/otel/trace v1.36.0 // indirect - golang.org/x/net v0.41.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.26.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/protobuf v1.36.6 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) - -replace go.opentelemetry.io/otel/metric => ../../../metric diff --git a/bridge/opentracing/test/go.sum b/bridge/opentracing/test/go.sum deleted file mode 100644 index c468181de..000000000 --- a/bridge/opentracing/test/go.sum +++ /dev/null @@ -1,55 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= -github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/opentracing-contrib/go-grpc v0.1.1 h1:Ws7IN1zyiL1DFqKQPhRXuKe5pLYzMfdxnC1qtajE2PE= -github.com/opentracing-contrib/go-grpc v0.1.1/go.mod h1:Nu6sz+4zzgxXu8rvKfnwjBEmHsuhTigxRwV2RhELrS8= -github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 h1:HGsK6KQUCjUB/wh0h7kxtNWu8AMmiGTFMiv9s9JrDSs= -github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032/go.mod h1:lGUfQ7UdqHsl7maAepZ2isMI1odCvxR62U2m/Jfi0oQ= -github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= -go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= -go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= -go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= -golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= -golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= -golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= -google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/versions.yaml b/versions.yaml index a1f3cd662..94402aee9 100644 --- a/versions.yaml +++ b/versions.yaml @@ -9,7 +9,6 @@ module-sets: - go.opentelemetry.io/otel/bridge/opencensus - go.opentelemetry.io/otel/bridge/opencensus/test - go.opentelemetry.io/otel/bridge/opentracing - - go.opentelemetry.io/otel/bridge/opentracing/test - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp - go.opentelemetry.io/otel/exporters/otlp/otlptrace