VSD: Add "Scheduled Reports" as markdown document in issues

Problem to solve

GitLab Analytics provide high value to executive, however, these reports are spread across multiple pages in GitLab. The Executives' time is very valuable, and they might not know how to use GitLab UI to get insights that they need.

Following this feedback 1, 2.

JTBD & Persona

Proposal

  1. Add a new pipeline templates with configuration that uses our VSD API to grab the data and generate markdown table:
Metrics comparison for GitLab.org group Month to date May 1 - May 4 April Apr 1 - Apr 30 March Mar 1 - Mar 31
Deployment Frequency 117.0/d -11.6% 132.3/d 0.99% 131.0/d 3.0%
Lead Time for Changes 0.2 d 100.0% 0.1 d 50.0% 0.2 d 100.0%
Time to Restore Service - 0.7 d 74.1% 2.7 d 60.9%
Change Failure Rate 0.34% 240.0% 0.1% 42.9% 0.07% 75.0%
Lead time 14.6 d -0.68% 14.7 d 3.5% 14.2 d 3.4%
Cycle time 5.9 d 5.9 d 20.4% 4.9 d 7.5%
New issues 1476 -86.0% 10569 1.6% 10746 36.1%
Deploys 585 -85.7% 4101 2.2% 4192 7.1%
  1. The pipeline schedule should be configured manually (outside of the YAML file) by the dev who sets up the report: https://docs.gitlab.com/ee/ci/pipelines/schedules.html#add-a-pipeline-schedule.
  2. Without the scheduling part, the YAML file should be exactly the same as the VSD config YAML file.
  3. Report periods for this MVC - 90 days.

Next iteration

We can add labels filters and colors trend:

Metrics comparison for GitLab.org group severity2 customer Month to date May 1 - May 4 April Apr 1 - Apr 30 March Mar 1 - Mar 31
Velocity - total issues completed 585 -85.7% 4101 +2.2% 4192 +7.1%
Old proposal

Configuration options

# issue_title - Change the title of the Value Streams Dashboard. [optional]
title: 'Custom Dashboard title'

# issue_description - Change the description of the Value Streams Dashboard. [optional]
description: 'Custom description'

# issue_labels 

issue_labels: group::optimize
issue_labels: metrics_comparison_report

# scheduled for the 1st day of the month

scheduled: monthly.at("1")

# widgets - List of widgets that contain panel settings.
#   title - Change the title of the panel. [optional]
#   data.namespace - The Group or Project path to use for the chart panel.
widgets:
  - title: 'My Custom Project'
    data:
      namespace: group/my-custom-project
  - data:
      namespace: group/another-project
  - title: 'My Custom Group'
    data:
      namespace: group/my-custom-group
  - data:
      namespace: group/another-group

Automate scheduled reports flow with gitLab_reports_BOT:

  1. The gitLab_reports_BOT will open "VSM month discussion issue" at at regular intervals (e.g., on the first Monday of every month.)
  2. In the first iteration, the bot will add to the issue description link to the Metrics comparative widgets.
  3. Similar to triage-reports, the bot will mention/assign users to the issue for Email or Slack notifications.
  4. Default Permissions for this flow - Developer (and higher).
Edited by Haim Snir