mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-10 05:27:07 +08:00
vendor: update buildkit to v0.14.0-rc1
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>
This commit is contained in:
72
vendor/github.com/moby/buildkit/util/tracing/delegated/delegated.go
generated
vendored
Normal file
72
vendor/github.com/moby/buildkit/util/tracing/delegated/delegated.go
generated
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
package delegated
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
|
||||
"github.com/moby/buildkit/client"
|
||||
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
||||
)
|
||||
|
||||
const maxBuffer = 256
|
||||
|
||||
var DefaultExporter = &Exporter{}
|
||||
|
||||
type Exporter struct {
|
||||
mu sync.Mutex
|
||||
exporters []sdktrace.SpanExporter
|
||||
buffer []sdktrace.ReadOnlySpan
|
||||
}
|
||||
|
||||
var (
|
||||
_ sdktrace.SpanExporter = (*Exporter)(nil)
|
||||
_ client.TracerDelegate = (*Exporter)(nil)
|
||||
)
|
||||
|
||||
func (e *Exporter) ExportSpans(ctx context.Context, ss []sdktrace.ReadOnlySpan) error {
|
||||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
|
||||
var err error
|
||||
for _, e := range e.exporters {
|
||||
if err1 := e.ExportSpans(ctx, ss); err1 != nil {
|
||||
err = err1
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(e.buffer) > maxBuffer {
|
||||
return nil
|
||||
}
|
||||
|
||||
e.buffer = append(e.buffer, ss...)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *Exporter) Shutdown(ctx context.Context) error {
|
||||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
|
||||
var err error
|
||||
for _, e := range e.exporters {
|
||||
if err1 := e.Shutdown(ctx); err1 != nil {
|
||||
err = err1
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (e *Exporter) SetSpanExporter(ctx context.Context, exp sdktrace.SpanExporter) error {
|
||||
e.mu.Lock()
|
||||
defer e.mu.Unlock()
|
||||
|
||||
e.exporters = append(e.exporters, exp)
|
||||
|
||||
if len(e.buffer) > 0 {
|
||||
return exp.ExportSpans(ctx, e.buffer)
|
||||
}
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user