1
0
mirror of https://github.com/moby/buildkit.git synced 2025-08-08 10:02:07 +03:00

otel: add wrapping "resolving" spans for ResolveImageConfig

Without this, a single ResolveImageConfig may emit many
"remotes.docker.resolver.HTTPRequest" spans. These can be difficult to
track and organize, especially if a single client performs multiple of
them.

To make traces a bit easier to navigate, these are now grouped under one
top-level span, instead of cluttering up the top-level.

Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
Justin Chadwell
2024-07-23 15:53:11 +01:00
parent 8403a7cbc2
commit 08bd6398fe
2 changed files with 14 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ import (
"github.com/moby/buildkit/util/imageutil"
"github.com/moby/buildkit/util/pull"
"github.com/moby/buildkit/util/resolver"
"github.com/moby/buildkit/util/tracing"
digest "github.com/opencontainers/go-digest"
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors"
@@ -148,7 +149,12 @@ func (is *Source) Resolve(ctx context.Context, id source.Identifier, sm *session
return p, nil
}
func (is *Source) ResolveImageConfig(ctx context.Context, ref string, opt sourceresolver.Opt, sm *session.Manager, g session.Group) (digest.Digest, []byte, error) {
func (is *Source) ResolveImageConfig(ctx context.Context, ref string, opt sourceresolver.Opt, sm *session.Manager, g session.Group) (digest digest.Digest, config []byte, retErr error) {
span, ctx := tracing.StartSpan(ctx, "resolving "+ref)
defer func() {
tracing.FinishWithError(span, retErr)
}()
key := ref
var (
rm resolver.ResolveMode