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

@@ -12,6 +12,7 @@ import (
"github.com/moby/buildkit/client/llb/sourceresolver" "github.com/moby/buildkit/client/llb/sourceresolver"
"github.com/moby/buildkit/util/contentutil" "github.com/moby/buildkit/util/contentutil"
"github.com/moby/buildkit/util/imageutil" "github.com/moby/buildkit/util/imageutil"
"github.com/moby/buildkit/util/tracing"
"github.com/moby/buildkit/version" "github.com/moby/buildkit/version"
"github.com/moby/locker" "github.com/moby/locker"
digest "github.com/opencontainers/go-digest" digest "github.com/opencontainers/go-digest"
@@ -75,7 +76,12 @@ type resolveResult struct {
dgst digest.Digest dgst digest.Digest
} }
func (imr *imageMetaResolver) ResolveImageConfig(ctx context.Context, ref string, opt sourceresolver.Opt) (string, digest.Digest, []byte, error) { func (imr *imageMetaResolver) ResolveImageConfig(ctx context.Context, ref string, opt sourceresolver.Opt) (resolvedRef string, digest digest.Digest, config []byte, retErr error) {
span, ctx := tracing.StartSpan(ctx, "resolving "+ref)
defer func() {
tracing.FinishWithError(span, retErr)
}()
imr.locker.Lock(ref) imr.locker.Lock(ref)
defer imr.locker.Unlock(ref) defer imr.locker.Unlock(ref)

View File

@@ -25,6 +25,7 @@ import (
"github.com/moby/buildkit/util/imageutil" "github.com/moby/buildkit/util/imageutil"
"github.com/moby/buildkit/util/pull" "github.com/moby/buildkit/util/pull"
"github.com/moby/buildkit/util/resolver" "github.com/moby/buildkit/util/resolver"
"github.com/moby/buildkit/util/tracing"
digest "github.com/opencontainers/go-digest" digest "github.com/opencontainers/go-digest"
ocispecs "github.com/opencontainers/image-spec/specs-go/v1" ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors" "github.com/pkg/errors"
@@ -148,7 +149,12 @@ func (is *Source) Resolve(ctx context.Context, id source.Identifier, sm *session
return p, nil 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 key := ref
var ( var (
rm resolver.ResolveMode rm resolver.ResolveMode