mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 01:53:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			640 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			640 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package tracing
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"os"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"github.com/moby/buildkit/util/tracing/detect"
 | 
						|
	"go.opentelemetry.io/otel/attribute"
 | 
						|
	"go.opentelemetry.io/otel/trace"
 | 
						|
)
 | 
						|
 | 
						|
func TraceCurrentCommand(ctx context.Context, name string) (context.Context, func(error), error) {
 | 
						|
	tp, err := detect.TracerProvider()
 | 
						|
	if err != nil {
 | 
						|
		return context.Background(), nil, err
 | 
						|
	}
 | 
						|
	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()
 | 
						|
 | 
						|
		detect.Shutdown(context.TODO())
 | 
						|
	}, nil
 | 
						|
}
 |