diff --git a/go.mod b/go.mod index 13dbaedad974..5eaaa4dfa164 100644 --- a/go.mod +++ b/go.mod @@ -50,6 +50,7 @@ require ( github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250408171107-3dd17559e117 github.com/zclconf/go-cty v1.16.2 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 go.opentelemetry.io/otel v1.31.0 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 go.opentelemetry.io/otel/metric v1.31.0 @@ -152,7 +153,6 @@ require ( github.com/xhit/go-str2duration/v2 v2.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect diff --git a/util/dockerutil/api.go b/util/dockerutil/api.go index b71728b1631d..941b8739b6df 100644 --- a/util/dockerutil/api.go +++ b/util/dockerutil/api.go @@ -4,6 +4,8 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/context/docker" dockerclient "github.com/docker/docker/client" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel/propagation" ) // ClientAPI represents an active docker API object. @@ -36,6 +38,10 @@ func NewClientAPI(cli command.Cli, ep string) (*ClientAPI, error) { return nil, err } + clientOpts = append(clientOpts, dockerclient.WithTraceOptions(otelhttp.WithPropagators( + propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}), + ))) + ca.APIClient, err = dockerclient.NewClientWithOpts(clientOpts...) if err != nil { return nil, err