fix(tracing): use latest version of semconv
All components need to use a consistent `semconv` version or OTel will emit errors about "cannot merge resource due to conflicting Schema URL". Switch to the appropriate semconv version, which requires dropping usage of `httpconv`. Instead, the upstream HTTP client hooks are used directly. (The lower-level functions are no longer exported by OTel.) Signed-off-by: Milas Bowman <milas.bowman@docker.com>
This commit is contained in:
committed by
Derek McGowan
parent
194a1fdd2c
commit
ad3b806a4f
@@ -39,6 +39,7 @@ import (
|
||||
"github.com/containerd/log"
|
||||
"github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -595,18 +596,16 @@ func (r *request) do(ctx context.Context) (*http.Response, error) {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
_, httpSpan := tracing.StartSpan(
|
||||
ctx,
|
||||
tracing.Name("remotes.docker.resolver", "HTTPRequest"),
|
||||
tracing.WithHTTPRequest(req),
|
||||
client.Transport = otelhttp.NewTransport(
|
||||
client.Transport,
|
||||
otelhttp.WithSpanNameFormatter(func(operation string, r *http.Request) string {
|
||||
return tracing.Name("remotes.docker.resolver", "HTTPRequest")
|
||||
}),
|
||||
)
|
||||
defer httpSpan.End()
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
httpSpan.SetStatus(err)
|
||||
return nil, fmt.Errorf("failed to do request: %w", err)
|
||||
}
|
||||
httpSpan.SetAttributes(tracing.HTTPStatusCodeAttributes(resp.StatusCode)...)
|
||||
log.G(ctx).WithFields(responseFields(resp)).Debug("fetch response received")
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user