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).

# Conflicts:
#	internal/version/version.go
  • Loading branch information
RomainMuller committed Jan 6, 2025
1 parent 41bf423 commit fa3ebe3
Showing 1 changed file with 18 additions and 0 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"
)

0 comments on commit fa3ebe3

Please sign in to comment.