From 2fe75a7a443dd3dbd6a24a88d092d2355d1a03d5 Mon Sep 17 00:00:00 2001 From: Miguel Rincon <mrincon@gitlab.com> Date: Mon, 10 Mar 2025 16:05:42 +0100 Subject: [PATCH] Use correct label for 50th percentile in charts P50 represents the median, not the mean, this fixes a misleading label in the pipeline duration charts. --- .../pipelines/charts/components/pipeline_charts_new.vue | 2 +- .../charts/components/pipeline_duration_chart.vue | 2 +- .../pipelines/charts/components/statistics_list.vue | 8 ++++---- locale/gitlab.pot | 4 ++-- .../charts/components/pipeline_charts_new_spec.js | 6 +++--- .../charts/components/pipeline_duration_chart_spec.js | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/projects/pipelines/charts/components/pipeline_charts_new.vue b/app/assets/javascripts/projects/pipelines/charts/components/pipeline_charts_new.vue index c0219ab9ff2a7..0730b3225b8ab 100644 --- a/app/assets/javascripts/projects/pipelines/charts/components/pipeline_charts_new.vue +++ b/app/assets/javascripts/projects/pipelines/charts/components/pipeline_charts_new.vue @@ -75,7 +75,7 @@ export default { this.pipelineAnalytics.aggregate; return { total: count === null ? '-' : count, - meanDuration: durationStatistics.p50, + medianDuration: durationStatistics.p50, successRatio: Number(count) ? (successCount / count) * 100 : 0, failureRatio: Number(count) ? (failedCount / count) * 100 : 0, }; diff --git a/app/assets/javascripts/projects/pipelines/charts/components/pipeline_duration_chart.vue b/app/assets/javascripts/projects/pipelines/charts/components/pipeline_duration_chart.vue index 2bb50cc9432e1..4213246584d74 100644 --- a/app/assets/javascripts/projects/pipelines/charts/components/pipeline_duration_chart.vue +++ b/app/assets/javascripts/projects/pipelines/charts/components/pipeline_duration_chart.vue @@ -25,7 +25,7 @@ export default { computed: { data() { const durationSeries = [ - { name: s__('Pipeline|Mean (50th percentile)'), data: [] }, + { name: s__('Pipeline|Median (50th percentile)'), data: [] }, { name: s__('Pipeline|95th percentile'), data: [] }, ]; diff --git a/app/assets/javascripts/projects/pipelines/charts/components/statistics_list.vue b/app/assets/javascripts/projects/pipelines/charts/components/statistics_list.vue index 1b2cc998bdff8..200b6c3385ef8 100644 --- a/app/assets/javascripts/projects/pipelines/charts/components/statistics_list.vue +++ b/app/assets/javascripts/projects/pipelines/charts/components/statistics_list.vue @@ -52,11 +52,11 @@ export default { }, ]; - if (this.counts.meanDuration) { + if (this.counts.medianDuration) { statistics.splice(1, 0, { - label: s__('PipelineCharts|Mean duration'), - identifier: 'mean-duration', - value: formatTimeSpent(this.counts.meanDuration), + label: s__('PipelineCharts|Median duration'), + identifier: 'median-duration', + value: formatTimeSpent(this.counts.medianDuration), }); } diff --git a/locale/gitlab.pot b/locale/gitlab.pot index e298cbeb8a556..ea3adec272aee 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -42477,7 +42477,7 @@ msgstr "" msgid "PipelineCharts|Last week" msgstr "" -msgid "PipelineCharts|Mean duration" +msgid "PipelineCharts|Median duration" msgstr "" msgid "PipelineCharts|Pipelines" @@ -43389,7 +43389,7 @@ msgstr "" msgid "Pipeline|Manual" msgstr "" -msgid "Pipeline|Mean (50th percentile)" +msgid "Pipeline|Median (50th percentile)" msgstr "" msgid "Pipeline|Merge request pipeline" diff --git a/spec/frontend/projects/pipelines/charts/components/pipeline_charts_new_spec.js b/spec/frontend/projects/pipelines/charts/components/pipeline_charts_new_spec.js index 65a7973a3c117..f318546a54b46 100644 --- a/spec/frontend/projects/pipelines/charts/components/pipeline_charts_new_spec.js +++ b/spec/frontend/projects/pipelines/charts/components/pipeline_charts_new_spec.js @@ -104,7 +104,7 @@ describe('~/projects/pipelines/charts/components/pipeline_charts_new.vue', () => expect(findStatisticsList().props('counts')).toEqual({ failureRatio: 0, - meanDuration: 0, + medianDuration: 0, successRatio: 0, total: '0', }); @@ -123,13 +123,13 @@ describe('~/projects/pipelines/charts/components/pipeline_charts_new.vue', () => expect(findStatisticsList().props('counts')).toEqual({ failureRatio: 25, - meanDuration: 1800, + medianDuration: 1800, successRatio: 25, total: '8', }); expect(findAllSingleStats().at(0).text()).toBe('Total pipeline runs 8'); - expect(findAllSingleStats().at(1).text()).toBe('Mean duration 30m'); + expect(findAllSingleStats().at(1).text()).toBe('Median duration 30m'); expect(findAllSingleStats().at(2).text()).toBe('Failure rate 25%'); expect(findAllSingleStats().at(3).text()).toBe('Success rate 25%'); }); diff --git a/spec/frontend/projects/pipelines/charts/components/pipeline_duration_chart_spec.js b/spec/frontend/projects/pipelines/charts/components/pipeline_duration_chart_spec.js index ba556c6f4585e..a69e292f02b53 100644 --- a/spec/frontend/projects/pipelines/charts/components/pipeline_duration_chart_spec.js +++ b/spec/frontend/projects/pipelines/charts/components/pipeline_duration_chart_spec.js @@ -44,7 +44,7 @@ describe('PipelineDurationChart', () => { }, }, data: [ - { data: [], name: 'Mean (50th percentile)' }, + { data: [], name: 'Median (50th percentile)' }, { data: [], name: '95th percentile' }, ], }); @@ -66,7 +66,7 @@ describe('PipelineDurationChart', () => { ['2021-12-01', 100], ['2021-12-02', 101], ], - name: 'Mean (50th percentile)', + name: 'Median (50th percentile)', }, { data: [ -- GitLab