mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	Update buildkit dependency to v0.14.0-rc1. Update the tracing infrastructure to use the new detect API which updates how the delegated exporter is configured. Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package tracing
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"os"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"github.com/moby/buildkit/util/tracing/delegated"
 | 
						|
	"github.com/moby/buildkit/util/tracing/detect"
 | 
						|
	"go.opentelemetry.io/otel"
 | 
						|
	"go.opentelemetry.io/otel/attribute"
 | 
						|
	sdktrace "go.opentelemetry.io/otel/sdk/trace"
 | 
						|
	"go.opentelemetry.io/otel/trace"
 | 
						|
)
 | 
						|
 | 
						|
func TraceCurrentCommand(ctx context.Context, name string) (context.Context, func(error), error) {
 | 
						|
	opts := []sdktrace.TracerProviderOption{
 | 
						|
		sdktrace.WithResource(detect.Resource()),
 | 
						|
		sdktrace.WithBatcher(delegated.DefaultExporter),
 | 
						|
	}
 | 
						|
	if exp, err := detect.NewSpanExporter(ctx); err != nil {
 | 
						|
		otel.Handle(err)
 | 
						|
	} else if !detect.IsNoneSpanExporter(exp) {
 | 
						|
		opts = append(opts, sdktrace.WithBatcher(exp))
 | 
						|
	}
 | 
						|
 | 
						|
	tp := sdktrace.NewTracerProvider(opts...)
 | 
						|
	ctx, span := tp.Tracer("").Start(ctx, name, trace.WithAttributes(
 | 
						|
		attribute.String("command", strings.Join(os.Args, " ")),
 | 
						|
	))
 | 
						|
 | 
						|
	return ctx, func(err error) {
 | 
						|
		if err != nil {
 | 
						|
			span.RecordError(err)
 | 
						|
		}
 | 
						|
		span.End()
 | 
						|
 | 
						|
		_ = tp.Shutdown(context.TODO())
 | 
						|
	}, nil
 | 
						|
}
 |