Skip to content

Commit 0435475

Browse files
authored
Merge pull request moby#4997 from tonistiigi/export-otel-spans
llbsolver: add more otel spans for export and history
2 parents 22e9579 + 031b316 commit 0435475

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

solver/llbsolver/proc/provenance.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@ import (
1212
"github.com/moby/buildkit/solver"
1313
"github.com/moby/buildkit/solver/llbsolver"
1414
"github.com/moby/buildkit/solver/result"
15+
"github.com/moby/buildkit/util/tracing"
1516
"github.com/pkg/errors"
1617
)
1718

1819
func ProvenanceProcessor(attrs map[string]string) llbsolver.Processor {
1920
return func(ctx context.Context, res *llbsolver.Result, s *llbsolver.Solver, j *solver.Job, usage *resources.SysSampler) (*llbsolver.Result, error) {
21+
span, ctx := tracing.StartSpan(ctx, "create provenance attestation")
22+
defer span.End()
23+
2024
ps, err := exptypes.ParsePlatforms(res.Metadata)
2125
if err != nil {
2226
return nil, err

solver/llbsolver/proc/sbom.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/moby/buildkit/solver"
1313
"github.com/moby/buildkit/solver/llbsolver"
1414
"github.com/moby/buildkit/solver/result"
15+
"github.com/moby/buildkit/util/tracing"
1516
"github.com/pkg/errors"
1617
)
1718

@@ -22,6 +23,9 @@ func SBOMProcessor(scannerRef string, useCache bool, resolveMode string) llbsolv
2223
return res, nil
2324
}
2425

26+
span, ctx := tracing.StartSpan(ctx, "create sbom attestation")
27+
defer span.End()
28+
2529
ps, err := exptypes.ParsePlatforms(res.Metadata)
2630
if err != nil {
2731
return nil, err

solver/llbsolver/solver.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
"github.com/moby/buildkit/util/grpcerrors"
3838
"github.com/moby/buildkit/util/leaseutil"
3939
"github.com/moby/buildkit/util/progress"
40+
"github.com/moby/buildkit/util/tracing"
4041
"github.com/moby/buildkit/util/tracing/detect"
4142
"github.com/moby/buildkit/worker"
4243
digest "github.com/opencontainers/go-digest"
@@ -190,6 +191,9 @@ func (s *Solver) recordBuildHistory(ctx context.Context, id string, req frontend
190191
en := time.Now()
191192
rec.CompletedAt = &en
192193

194+
span, ctx := tracing.StartSpan(ctx, "create history record")
195+
defer span.End()
196+
193197
j.CloseProgress()
194198

195199
if res != nil && len(res.Metadata) > 0 {
@@ -222,7 +226,10 @@ func (s *Solver) recordBuildHistory(ctx context.Context, id string, req frontend
222226
}
223227
}
224228

225-
makeProvenance := func(res solver.ResultProxy, cap *provenance.Capture) (*controlapi.Descriptor, func(), error) {
229+
makeProvenance := func(name string, res solver.ResultProxy, cap *provenance.Capture) (*controlapi.Descriptor, func(), error) {
230+
span, ctx := tracing.StartSpan(ctx, fmt.Sprintf("create %s history provenance", name))
231+
defer span.End()
232+
226233
prc, err := NewProvenanceCreator(ctx2, cap, res, attrs, j, usage)
227234
if err != nil {
228235
return nil, nil, err
@@ -265,7 +272,7 @@ func (s *Solver) recordBuildHistory(ctx context.Context, id string, req frontend
265272
if res != nil {
266273
if res.Ref != nil {
267274
eg.Go(func() error {
268-
desc, release, err := makeProvenance(res.Ref, res.Provenance.Ref)
275+
desc, release, err := makeProvenance("default", res.Ref, res.Provenance.Ref)
269276
if err != nil {
270277
return err
271278
}
@@ -288,7 +295,7 @@ func (s *Solver) recordBuildHistory(ctx context.Context, id string, req frontend
288295
k, r := k, r
289296
cp := res.Provenance.Refs[k]
290297
eg.Go(func() error {
291-
desc, release, err := makeProvenance(r, cp)
298+
desc, release, err := makeProvenance(k, r, cp)
292299
if err != nil {
293300
return err
294301
}
@@ -744,6 +751,9 @@ func (s *Solver) runExporters(ctx context.Context, exporters []exporter.Exporter
744751
eg.Go(func() error {
745752
id := fmt.Sprint(job.SessionID, "-export-", i)
746753
return inBuilderContext(ctx, job, exp.Name(), id, func(ctx context.Context, _ session.Group) error {
754+
span, ctx := tracing.StartSpan(ctx, exp.Name())
755+
defer span.End()
756+
747757
if i == 0 && len(warnings) > 0 {
748758
pw, _, _ := progress.NewFromContext(ctx)
749759
for _, w := range warnings {

0 commit comments

Comments
 (0)