Add mode label to failed_jobs_total and job_duration_seconds metrics

Summary

  • Add a mode label (steps/traditional) to gitlab_runner_failed_jobs_total and gitlab_runner_job_duration_seconds metrics
  • Enables the Steps rollout monitoring dashboard to directly compare failure rates and job durations between execution modes
  • Without this, failure/duration attribution requires instance-based proxy comparisons (comparing enabled vs non-enabled managers)

What changed

File Change
common/build.go Export DispatchedJobExecutionMode(), pass mode in JobFailureData on failure
common/trace.go Add Mode field to JobFailureData
common/network.go Update FailuresCollector interface to accept mode
helpers/prometheus/failures_collector.go Add mode to metric labels, permutation, and recording
network/trace.go Pass mode through to RecordFailure
commands/builds_helper.go Add mode label to jobDurationHistogram
common/mocks.go Update mock to match new interface

New metric labels

gitlab_runner_failed_jobs_total: added mode (values: steps, traditional, or empty for pre-mode-determination failures)

gitlab_runner_job_duration_seconds: added mode (values: steps, traditional)

Test plan

  • TestFailuresCollector_Collect_GroupingReasons passes
  • TestFailuresCollector_Collect_MetricsValues passes — verifies mode label is emitted
  • go build ./... passes
  • CI pipeline

Closes Add execution mode label to failure and duratio... (step-runner#445 - closed) • Georgi N. Georgiev | GitLab • 19.0

Edited by Georgi N. Georgiev | GitLab

Merge request reports

Loading