Skip to content

Release ddtrace/opentelemetry as a nested module [breaking change] #4190

@darccio

Description

@darccio

Discussed in #4189

Originally posted by darccio November 28, 2025

Package Name

No response

Package Version(s)

No response

Describe the feature you'd like

Recent issues around go.opentelemetry.io/collector/pdata/pprofile dependency, as they tend to introduce breaking changes, might signal a need to isolate ddtrace/opentelemetry as we did with our contribs.

Unfortunately, this is a breaking change, as the import URL must be changed from github.com/DataDog/dd-trace-go/v2/ddtrace/opentelemery to github.com/DataDog/dd-trace-go/ddtrace/opentelemetry/v2. This is why we should only consider doing it if we ever decide to release a new major version v3.

Additionally, go.opentelemetry.io/* introduces multiple indirect dependencies, which reduce our ability to restrict the dependencies that are being pulled when using dd-trace-go:

go.opentelemetry.io/auto/sdk@v1.2.1 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/auto/sdk@v1.2.1 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/auto/sdk@v1.2.1 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/auto/sdk@v1.2.1 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/auto/sdk@v1.2.1 github.com/kr/pretty@v0.3.1
go.opentelemetry.io/auto/sdk@v1.2.1 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/auto/sdk@v1.2.1 github.com/rogpeppe/go-internal@v1.14.1
go.opentelemetry.io/auto/sdk@v1.2.1 gopkg.in/check.v1@v1.0.0-20201130134442-10cb98267c6c
go.opentelemetry.io/auto/sdk@v1.2.1 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/auto/sdk@v1.2.1 go@1.24.0
go.opentelemetry.io/collector/component@v1.42.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/collector/internal/telemetry@v0.136.0
go.opentelemetry.io/collector/component@v1.42.0 go.uber.org/goleak@v1.3.0
go.opentelemetry.io/collector/component@v1.42.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/collector/component@v1.42.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/collector/component@v1.42.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/collector/component@v1.42.0 github.com/gogo/protobuf@v1.3.2
go.opentelemetry.io/collector/component@v1.42.0 github.com/google/uuid@v1.6.0
go.opentelemetry.io/collector/component@v1.42.0 github.com/hashicorp/go-version@v1.7.0
go.opentelemetry.io/collector/component@v1.42.0 github.com/json-iterator/go@v1.1.12
go.opentelemetry.io/collector/component@v1.42.0 github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd
go.opentelemetry.io/collector/component@v1.42.0 github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee
go.opentelemetry.io/collector/component@v1.42.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/collector/featuregate@v1.42.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/collector/pdata@v1.42.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/contrib/bridges/otelzap@v0.12.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/otel/log@v0.14.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/otel/sdk@v1.38.0
go.opentelemetry.io/collector/component@v1.42.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/collector/component@v1.42.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/collector/component@v1.42.0 go.uber.org/zap@v1.27.0
go.opentelemetry.io/collector/component@v1.42.0 golang.org/x/net@v0.41.0
go.opentelemetry.io/collector/component@v1.42.0 golang.org/x/sys@v0.35.0
go.opentelemetry.io/collector/component@v1.42.0 golang.org/x/text@v0.26.0
go.opentelemetry.io/collector/component@v1.42.0 google.golang.org/genproto/googleapis/rpc@v0.0.0-20250707201910-8d1bb00bc6a7
go.opentelemetry.io/collector/component@v1.42.0 google.golang.org/grpc@v1.75.1
go.opentelemetry.io/collector/component@v1.42.0 google.golang.org/protobuf@v1.36.9
go.opentelemetry.io/collector/component@v1.42.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/collector/component@v1.42.0 go@1.24.0
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/hashicorp/go-version@v1.7.0
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/collector/featuregate@v1.46.0 go.uber.org/goleak@v1.3.0
go.opentelemetry.io/collector/featuregate@v1.46.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/kr/pretty@v0.3.1
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/collector/featuregate@v1.46.0 github.com/rogpeppe/go-internal@v1.10.0
go.opentelemetry.io/collector/featuregate@v1.46.0 gopkg.in/check.v1@v1.0.0-20201130134442-10cb98267c6c
go.opentelemetry.io/collector/featuregate@v1.46.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/collector/featuregate@v1.46.0 go@1.24.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/collector/featuregate@v1.42.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/collector/pdata@v1.42.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/collector/pipeline@v1.42.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/contrib/bridges/otelzap@v0.12.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/log@v0.14.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/log/logtest@v0.14.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/sdk@v1.38.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/sdk/metric@v1.38.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.uber.org/zap@v1.27.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/gogo/protobuf@v1.3.2
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/google/go-cmp@v0.7.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/google/uuid@v1.6.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/hashicorp/go-version@v1.7.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/json-iterator/go@v1.1.12
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 golang.org/x/net@v0.41.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 golang.org/x/sys@v0.35.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 golang.org/x/text@v0.26.0
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 google.golang.org/genproto/googleapis/rpc@v0.0.0-20250707201910-8d1bb00bc6a7
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 google.golang.org/grpc@v1.75.1
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 google.golang.org/protobuf@v1.36.9
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/collector/internal/telemetry@v0.136.0 go@1.24.0
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/json-iterator/go@v1.1.12
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/collector/pdata@v1.46.0 go.opentelemetry.io/collector/featuregate@v1.46.0
go.opentelemetry.io/collector/pdata@v1.46.0 go.opentelemetry.io/proto/slim/otlp@v1.9.0
go.opentelemetry.io/collector/pdata@v1.46.0 go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development@v0.2.0
go.opentelemetry.io/collector/pdata@v1.46.0 go.opentelemetry.io/proto/slim/otlp/profiles/v1development@v0.2.0
go.opentelemetry.io/collector/pdata@v1.46.0 go.uber.org/goleak@v1.3.0
go.opentelemetry.io/collector/pdata@v1.46.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/collector/pdata@v1.46.0 google.golang.org/grpc@v1.76.0
go.opentelemetry.io/collector/pdata@v1.46.0 google.golang.org/protobuf@v1.36.10
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/hashicorp/go-version@v1.7.0
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/kr/text@v0.2.0
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee
go.opentelemetry.io/collector/pdata@v1.46.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/collector/pdata@v1.46.0 golang.org/x/net@v0.42.0
go.opentelemetry.io/collector/pdata@v1.46.0 golang.org/x/sys@v0.34.0
go.opentelemetry.io/collector/pdata@v1.46.0 golang.org/x/text@v0.27.0
go.opentelemetry.io/collector/pdata@v1.46.0 google.golang.org/genproto/googleapis/rpc@v0.0.0-20250804133106-a7a43d27e69b
go.opentelemetry.io/collector/pdata@v1.46.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/collector/pdata@v1.46.0 go@1.24.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.opentelemetry.io/collector/pdata@v1.46.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development@v0.2.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.opentelemetry.io/proto/slim/otlp/profiles/v1development@v0.2.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.uber.org/goleak@v1.3.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 google.golang.org/grpc@v1.76.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 google.golang.org/protobuf@v1.36.10
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/hashicorp/go-version@v1.7.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/json-iterator/go@v1.1.12
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/modern-go/reflect2@v1.0.3-0.20250322232337-35a7c28c31ee
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.opentelemetry.io/collector/featuregate@v1.46.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.opentelemetry.io/proto/slim/otlp@v1.9.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 golang.org/x/net@v0.42.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 golang.org/x/sys@v0.34.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 golang.org/x/text@v0.27.0
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 google.golang.org/genproto/googleapis/rpc@v0.0.0-20250804133106-a7a43d27e69b
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/collector/pdata/pprofile@v0.140.0 go@1.24.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/otel/log@v0.14.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/otel/log/logtest@v0.14.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.uber.org/zap@v1.27.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/google/go-cmp@v0.7.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go.uber.org/multierr@v1.11.0
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/contrib/bridges/otelzap@v0.13.0 go@1.23.0
go.opentelemetry.io/otel@v1.38.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/otel@v1.38.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/otel@v1.38.0 github.com/google/go-cmp@v0.7.0
go.opentelemetry.io/otel@v1.38.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/otel@v1.38.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/otel@v1.38.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/otel@v1.38.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/otel@v1.38.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/otel@v1.38.0 github.com/kr/text@v0.2.0
go.opentelemetry.io/otel@v1.38.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/otel@v1.38.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/otel@v1.38.0 go@1.23.0
go.opentelemetry.io/otel/log@v0.14.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/otel/log@v0.14.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/otel/log@v0.14.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/otel/log@v0.14.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/otel/log@v0.14.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/otel/log@v0.14.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/otel/log@v0.14.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/otel/log@v0.14.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/otel/log@v0.14.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/otel/log@v0.14.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/otel/log@v0.14.0 go@1.23.0
go.opentelemetry.io/otel/metric@v1.38.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/otel/metric@v1.38.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/otel/metric@v1.38.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/otel/metric@v1.38.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/otel/metric@v1.38.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/otel/metric@v1.38.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/otel/metric@v1.38.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/otel/metric@v1.38.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/otel/metric@v1.38.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/otel/metric@v1.38.0 go@1.23.0
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/go-logr/logr@v1.4.3
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/google/go-cmp@v0.7.0
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/google/uuid@v1.6.0
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/otel/sdk@v1.38.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/otel/sdk@v1.38.0 go.opentelemetry.io/otel/metric@v1.38.0
go.opentelemetry.io/otel/sdk@v1.38.0 go.opentelemetry.io/otel/sdk/metric@v1.38.0
go.opentelemetry.io/otel/sdk@v1.38.0 go.opentelemetry.io/otel/trace@v1.38.0
go.opentelemetry.io/otel/sdk@v1.38.0 go.uber.org/goleak@v1.3.0
go.opentelemetry.io/otel/sdk@v1.38.0 golang.org/x/sys@v0.35.0
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/go-logr/stdr@v1.2.2
go.opentelemetry.io/otel/sdk@v1.38.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/otel/sdk@v1.38.0 go.opentelemetry.io/auto/sdk@v1.1.0
go.opentelemetry.io/otel/sdk@v1.38.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/otel/sdk@v1.38.0 go@1.23.0
go.opentelemetry.io/otel/trace@v1.38.0 github.com/google/go-cmp@v0.7.0
go.opentelemetry.io/otel/trace@v1.38.0 github.com/stretchr/testify@v1.11.1
go.opentelemetry.io/otel/trace@v1.38.0 go.opentelemetry.io/otel@v1.38.0
go.opentelemetry.io/otel/trace@v1.38.0 github.com/davecgh/go-spew@v1.1.1
go.opentelemetry.io/otel/trace@v1.38.0 github.com/pmezard/go-difflib@v1.0.0
go.opentelemetry.io/otel/trace@v1.38.0 gopkg.in/yaml.v3@v3.0.1
go.opentelemetry.io/otel/trace@v1.38.0 go@1.23.0

Is your feature request related to a problem?

No response

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    nextFor future versionsproposalmore in depth change that requires full team approval

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions