'The staging stage shows the time between merging the MR and deploying code to the production environment. The data will be automatically added once you deploy to production for the first time.',
'The staging stage shows the time between merging the MR and deploying code to the production environment. The data will be automatically added once you deploy to production for the first time.',
),
),
production:__(
production:__(
'The production stage shows the total time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle.',
'The total stage shows the time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle.',
%i.has-tooltip.fa.fa-question-circle{"data-placement"=>"top",title: _("The collection of events added to the data gathered for that stage."),"aria-hidden"=>"true"}
%i.has-tooltip.fa.fa-question-circle{"data-placement"=>"top",title: _("The collection of events added to the data gathered for that stage."),"aria-hidden"=>"true"}
%li.total-time-header.pr-5.text-right
%li.total-time-header.pr-5.text-right
%span.stage-name.font-weight-bold
%span.stage-name.font-weight-bold
{{ __('Total Time') }}
{{ __('Time') }}
%i.has-tooltip.fa.fa-question-circle{"data-placement"=>"top",title: _("The time taken by each data entry gathered by that stage."),"aria-hidden"=>"true"}
%i.has-tooltip.fa.fa-question-circle{"data-placement"=>"top",title: _("The time taken by each data entry gathered by that stage."),"aria-hidden"=>"true"}
Some start/end event pairs are not "compatible" with each other. For example:
Some start/end event pairs are not "compatible" with each other. For example:
- "Issue created" to "Merge Request created": The event classes are defined on different domain models, the `object_type` method is different.
- "Issue created" to "Merge Request created": The event classes are defined on different domain models, the `object_type` method is different.
- "Issue closed" to "Issue created": Issue must be created first before it can be closed.
- "Issue closed" to "Issue created": Issue must be created first before it can be closed.
- "Issue closed" to "Issue closed": Duration is always 0.
- "Issue closed" to "Issue closed": Duration is always 0.
The `StageEvents` module describes the allowed `start_event` and `end_event` pairings (`PAIRING_RULES` constant). If a new event is added, it needs to be registered in this module.
The `StageEvents` module describes the allowed `start_event` and `end_event` pairings (`PAIRING_RULES` constant). If a new event is added, it needs to be registered in this module.
@@ -44,8 +44,8 @@ There are seven stages that are tracked as part of the Cycle Analytics calculati
...
@@ -44,8 +44,8 @@ There are seven stages that are tracked as part of the Cycle Analytics calculati
- Time spent on code review
- Time spent on code review
-**Staging** (Continuous Deployment)
-**Staging** (Continuous Deployment)
- Time between merging and deploying to production
- Time between merging and deploying to production
-**Production** (Total)
-**Total** (Total)
- Total lifecycle time; i.e. the velocity of the project or team
- Total lifecycle time. That is, the velocity of the project or team. [Previously known](https://gitlab.com/gitlab-org/gitlab/issues/38317) as **Production**.
## Date ranges
## Date ranges
...
@@ -60,12 +60,12 @@ GitLab provides the ability to filter analytics based on a date range. To filter
...
@@ -60,12 +60,12 @@ GitLab provides the ability to filter analytics based on a date range. To filter
## How the data is measured
## How the data is measured
Cycle Analytics records cycle time and data based on the project issues with the
Cycle Analytics records cycle time and data based on the project issues with the
exception of the staging and production stages, where only data deployed to
exception of the staging and total stages, where only data deployed to
production are measured.
production are measured.
Specifically, if your CI is not set up and you have not defined a `production`
Specifically, if your CI is not set up and you have not defined a `production`
or `production/*`[environment](../../ci/yaml/README.md#environment), then you will not have any
or `production/*`[environment](../../ci/yaml/README.md#environment), then you will not have any
data for those stages.
data for this stage.
Each stage of Cycle Analytics is further described in the table below.
Each stage of Cycle Analytics is further described in the table below.
...
@@ -77,7 +77,7 @@ Each stage of Cycle Analytics is further described in the table below.
...
@@ -77,7 +77,7 @@ Each stage of Cycle Analytics is further described in the table below.
| Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. |
| Test | Measures the median time to run the entire pipeline for that project. It's related to the time GitLab CI takes to run every job for the commits pushed to that merge request defined in the previous stage. It is basically the start->finish time for all pipelines. |
| Review | Measures the median time taken to review the merge request that has closing issue pattern, between its creation and until it's merged. |
| Review | Measures the median time taken to review the merge request that has closing issue pattern, between its creation and until it's merged. |
| Staging | Measures the median time between merging the merge request with closing issue pattern until the very first deployment to production. It's tracked by the environment set to `production` or matching `production/*` (case-sensitive, `Production` won't work) in your GitLab CI configuration. If there isn't a production environment, this is not tracked. |
| Staging | Measures the median time between merging the merge request with closing issue pattern until the very first deployment to production. It's tracked by the environment set to `production` or matching `production/*` (case-sensitive, `Production` won't work) in your GitLab CI configuration. If there isn't a production environment, this is not tracked. |
| Production| The sum of all time (medians) taken to run the entire process, from issue creation to deploying the code to production. |
| Total | The sum of all time (medians) taken to run the entire process, from issue creation to deploying the code to production. [Previously known](https://gitlab.com/gitlab-org/gitlab/issues/38317) as **Production**. |
How this works, behind the scenes:
How this works, behind the scenes:
...
@@ -124,7 +124,7 @@ environments is configured.
...
@@ -124,7 +124,7 @@ environments is configured.
1. Now that the merge request is merged, a deployment to the `production`
1. Now that the merge request is merged, a deployment to the `production`
environment starts and finishes at 19:30 (stop of **Staging** stage).
environment starts and finishes at 19:30 (stop of **Staging** stage).
1. The cycle completes and the sum of the median times of the previous stages
1. The cycle completes and the sum of the median times of the previous stages
is recorded to the **Production** stage. That is the time between creating an
is recorded to the **Total** stage. That is the time between creating an
issue and deploying its relevant merge request to production.
issue and deploying its relevant merge request to production.
From the above example you can conclude the time it took each stage to complete
From the above example you can conclude the time it took each stage to complete
...
@@ -136,10 +136,10 @@ as long as their total time:
...
@@ -136,10 +136,10 @@ as long as their total time:
-**Test**: 5min
-**Test**: 5min
-**Review**: 5h (19:00 - 14:00)
-**Review**: 5h (19:00 - 14:00)
-**Staging**: 30min (19:30 - 19:00)
-**Staging**: 30min (19:30 - 19:00)
-**Production**: Since this stage measures the sum of median time off all
-**Total**: Since this stage measures the sum of median time of all
previous stages, we cannot calculate it if we don't know the status of the
previous stages, we cannot calculate it if we don't know the status of the
stages before. In case this is the very first cycle that is run in the project,
stages before. In case this is the very first cycle that is run in the project,
then the **Production** time is 10h 30min (19:30 - 09:00)
then the **Total** time is 10h 30min (19:30 - 09:00)
msgid "CycleAnalyticsStage|is not available for the selected group"
msgid "CycleAnalyticsStage|is not available for the selected group"
msgstr ""
msgstr ""
...
@@ -18158,6 +18158,9 @@ msgstr ""
...
@@ -18158,6 +18158,9 @@ msgstr ""
msgid "The time taken by each data entry gathered by that stage."
msgid "The time taken by each data entry gathered by that stage."
msgstr ""
msgstr ""
msgid "The total stage shows the time it takes between creating an issue and deploying the code to production. The data will be automatically added once you have completed the full idea to production cycle."
msgstr ""
msgid "The unique identifier for the Geo node. Must match `geo_node_name` if it is set in gitlab.rb, otherwise it must match `external_url` with a trailing slash"
msgid "The unique identifier for the Geo node. Must match `geo_node_name` if it is set in gitlab.rb, otherwise it must match `external_url` with a trailing slash"
"kernel_version":"Darwin Seans-MBP.fritz.box 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64",
"version":"Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64",