tektoncd/pipeline

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

開放

#9,783 建立於 2026年4月16日

 (2 則留言) (0 個反應) (0 位負責人)Go (1,943 個分叉)auto 404
good first issuekind/feature

倉庫指標

星標
 (9,013 顆星)
PR 合併指標
 (平均合併 9天 3小時) (30 天內合併 137 個 PR)

描述

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.

貢獻者指南