tektoncd/pipeline

feat(tracing): add spans to timeout and cancellation code paths

Offen

#9.783 geöffnet am 16.04.2026

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Go (1.943 Forks)auto 404
good first issuekind/feature

Repository-Metriken

Stars
 (9.013 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Feature request

Add OpenTelemetry spans to the PipelineRun cancellation and timeout helpers. These code paths have zero tracing, making it impossible to trace why a run was stopped or how long child-patching took.

Use case

When a PipelineRun times out, the trace ends abruptly. Adding spans to the cancel/timeout functions reveals: which children were patched, how long each patch took, and whether graceful cancellation triggered finally tasks.

Implementation hints

PipelineRun — pkg/reconciler/pipelinerun/cancel.go:

  • cancelPipelineRun — marks PR cancelled, patches all children
  • gracefullyCancelPipelineRun — cancels tasks but triggers finally
  • cancelPipelineTaskRunsForTaskNames — iterates children, patches each
  • cancelTaskRun / cancelCustomRun — individual child patches

PipelineRun — pkg/reconciler/pipelinerun/timeout.go:

  • timeoutPipelineRun — marks PR timed out, patches all children
  • timeoutPipelineTasksForTaskNames — iterates children, patches each
  • timeoutTaskRun / timeoutCustomRun — individual child patches

TaskRun — pkg/reconciler/taskrun/taskrun.go:

  • Line 185: IsCancelled() branch — add span attribute reason=Cancelled
  • Line 199: HasTimedOut() branch — add span attribute reason=TimedOut

Part of umbrella: #9701

good first issue — well-scoped files (cancel.go + timeout.go), clear functions.

Contributor Guide