Skip to content

Added "DORA performers score" panel to VSD

Rudy Crespo requested to merge 386843-dora-performers-score-panel into master

What does this MR do and why?

Adds the "DORA performers score" panel to the Value Stream Dashboard behind the dora_performers_score_panel feature flag.

Screenshots or screen recordings

Description Screenshot
Default Screenshot 2023-07-17 at 2.09.35 PM.png
Multiple panels Screenshot 2023-07-17 at 2.04.51 PM.png
Data series tooltip Screenshot 2023-07-17 at 2.09.57 PM.png
No score counts data series tooltip Screenshot 2023-07-17 at 2.12.58 PM.png
Bar tooltip Screenshot 2023-07-17 at 2.10.15 PM.png
Loading Screenshot 2023-07-13 at 2.41.15 PM.png
Error Screenshot 2023-07-17 at 2.11.46 PM.png
Unsupported project namespace error Screenshot 2023-07-17 at 2.12.21 PM.png
No data Screenshot 2023-07-17 at 2.11.05 PM.png

How to set up and validate locally

  1. Please make sure that you have a GitLab Ultimate license
  2. Feature.enable(:dora_performers_score_panel, <group-id>)
  3. Create a group and project(s)
  4. Seed cycle analytics data
  5. Seed dora metrics data
  6. For DoraPerformanceScoreCounts data, either run the script or apply the diff below.
  7. Visit the Value streams dashboard and verify that panel(s) appear(s) by default and using custom configuration

Seed Data

project = Project.find(<project-id>)
score1 = Dora::PerformanceScore.create(project: project, date: Time.current.to_date.beginning_of_month, deployment_frequency: 'high', lead_time_for_changes: 'high', time_to_restore_service: 'medium', change_failure_rate: 'low')
# etc etc

Dummy Data

diff --git a/ee/app/assets/javascripts/analytics/dashboards/components/dora_performers_score.vue b/ee/app/assets/javascripts/analytics/dashboards/components/dora_performers_score.vue
index f0f99c7375c4..a5b4fb0dbf3e 100644
--- a/ee/app/assets/javascripts/analytics/dashboards/components/dora_performers_score.vue
+++ b/ee/app/assets/javascripts/analytics/dashboards/components/dora_performers_score.vue
@@ -83,7 +83,26 @@ export default {
       return this.$apollo.queries.groupDoraPerformanceScoreCounts.loading;
     },
     chartData() {
-      return extractDoraPerformanceScoreCounts(this.groupDoraPerformanceScoreCounts?.items);
+      // return extractDoraPerformanceScoreCounts(this.groupDoraPerformanceScoreCounts?.items);
+
+      return [
+        {
+          name: __('High'),
+          data: [50, 75, 15, 5],
+        },
+        {
+          name: __('Medium'),
+          data: [24, 30, 55, 70],
+        },
+        {
+          name: __('Low'),
+          data: [27, 25, 80, 81],
+        },
+        {
+          name: __('Not included'),
+          data: [10, 13, 14, 15],
+        },
+      ];
     },
     doraMetrics() {
       return DORA_PERFORMERS_SCORE_METRICS.map(({ label }) => label);

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #386843 (closed)

Edited by Rudy Crespo

Merge request reports