Average Pipeline Lead/Cycle Time

Purpose

Average Pipeline Time shows an average time for a pipeline to pass integration stages.

How metric helps

Average Pipeline Time helps to reveal an overall efficiency of an integration process and to highlight the most problematic entities (branches).

How it works

Chart overview

Chart shows Average Pipeline Time in minutes - Axis Y by calendar week - Axis X. The number of series in the chart is a number of selected branches in Project Configuration. Legend shows the last values of the metric by branch.

When hover over a series hint appears:

  • <Branch name>: <metric value in minutes>

Next to the chart name there is a link to GIT repository ('arrow').

Calculation formula

Average Pipeline Lead Time

Average Pipeline Cycle Time

Average Pipeline Lead Time

Average Pipeline Cycle Time

Timing for a single pipeline:

PT  = Ptend - Ptstart,

where

Ptend - timestamp of a pipeline end

Ptstart - timestamp of a pipeline start


Average Pipeline Lead Time:

PTavg =ΣPTi/N,

where

PTi  - pipeline time of a single pipeline;

N - number of successful pipelines within a considered week

Average Pipeline Cycle Time:

PDavg =ΣPDi/N,

where

PDi - pipeline duration of a single pipeline - it is got from a master system as is (GitLab CI / Jenkins);

N - number of successful pipelines within a considered week



In Jenkins, pipeline duration (i.e. its "net" Cycle time) is equal to pipeline Lead time. So, the Avg Cycle Time per Jenkins, as a separate widget, is not quite valuable.

In GitLab CI, the duration of a pipeline is equal to Lead time without retries and pending (queued) time i.e. reflects a real "net" execution time, see details.



 

Assumptions:

  • Only successful pipelines are included into the calculation. 

  • If a pipeline end timestamp is later than a week end then PERF takes an actual pipeline end timestamp

  • If a pipeline start timestamp is earlier than a week start then PERF takes an actual pipeline start timestamp

RAG thresholds: n/a.

Data Source

Data for the metric can be collected from GitLab CI or Jenkins. When using Jenkins make sure Pipeline plugin is installed.