Skip to content

Commit

Permalink
fix: workaround for otel agent dependency causes orchestrion failure
Browse files Browse the repository at this point in the history
Moved the blank import of `go.opentelemetry.io/collector/pdata/pprofile``
which was introduced to avoid `go mod tidy` from failing to resolve a
coherent dependency closure into a new file guarded by a build tag so
that it is not present in builds uder normal circumstances.

This removes a dependency cycle caused by the `pprofile` package having
a transitive dependency on `net/http`, while the
`gopkg.in/DataDog/dd-trace-go.v1/internal` package is imported some code
that is injected by orchestrion into `net/http` itself (resulting in a
cycle, breaking builds).
  • Loading branch information
RomainMuller committed Jan 6, 2025
1 parent 4f54e4f commit a256d2b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
18 changes: 18 additions & 0 deletions internal/agent-otel-workaround.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Unless explicitly stated otherwise all files in this repository are licensed
// under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2022 Datadog, Inc.

//go:build otel_workaround

package internal

import (
// OTel did a breaking change to the module go.opentelemetry.io/collector/pdata which is imported by the agent
// and go.opentelemetry.io/collector/pdata/pprofile depends on it and is breaking because of it
// For some reason the dependency closure won't let use upgrade this module past the point where it does not break anymore
// So we are forced to add a blank import of this module to give us back the control over its version
//
// TODO: remove this once github.com/datadog-agent/pkg/trace has upgraded both modules past the breaking change
_ "go.opentelemetry.io/collector/pdata/pprofile"
)
8 changes: 0 additions & 8 deletions internal/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,6 @@ import (
"os"

"gopkg.in/DataDog/dd-trace-go.v1/internal/log"

// OTel did a breaking change to the module go.opentelemetry.io/collector/pdata which is imported by the agent
// and go.opentelemetry.io/collector/pdata/pprofile depends on it and is breaking because of it
// For some reason the dependency closure won't let use upgrade this module past the point where it does not break anymore
// So we are forced to add a blank import of this module to give us back the control over its version
//
// TODO: remove this once github.com/datadog-agent/pkg/trace has upgraded both modules past the breaking change
_ "go.opentelemetry.io/collector/pdata/pprofile"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion internal/version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// Tag specifies the current release tag. It needs to be manually
// updated. A test checks that the value of Tag never points to a
// git tag that is older than HEAD.
const Tag = "v1.70.2"
const Tag = "v1.70.3"

// Dissected version number. Filled during init()
var (
Expand Down

0 comments on commit a256d2b

Please sign in to comment.