Skip to content
Snippets Groups Projects

Add DORA metrics dashboard MvC

Merged Ezekiel Kigbo requested to merge ek-spike-ci-cd-analytics-shared-dashboards into master

What does this MR do and why?

This MR:

  • Adds the dora_metrics_dashboard WIP feature flag
  • Renames the dora_metrics_over_time data source to dora_metrics
  • Extends the data source to query for either time series data or a single value (uses the Bucketing interval parameter) !180012 (merged)
  • Adds time series chart visualizations for the four DORA metrics
  • Adds a DORA metrics dashboard to test out the tiles + charts (optional)

References

Please include cross links to any resources that are relevant to this MR. This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Dashboard Dashboard list
Screenshot_2025-02-20_at_22.27.19 Screenshot_2025-02-20_at_22.27.32

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Seed data for Dora Metrics https://docs.gitlab.com/ee/development/development_seed_files.html
  2. Enable the feature flags in rails console:
    Feature.enable(:dora_metrics_dashboard)
  3. Navigate to Analytics Dashboard Editor for a group or project
  4. Select Dora metric charts
  5. Compare the data in the charts with the CI/CD analytics page
Edited by Ezekiel Kigbo

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • 3 Warnings
    :warning: ae7893b5: Commits that change 30 or more lines across at least 3 files should describe these changes in the commit body. For more information, take a look at our Commit message guidelines.
    :warning:

    featureaddition and featureenhancement merge requests normally have a documentation change. Consider adding a documentation update or confirming the documentation plan with the Technical Writer counterpart.

    For more information, see:

    :warning: The master pipeline status page reported failures in

    If these jobs fail in your merge request with the same errors, then they are not caused by your changes.
    Please check for any on-going incidents in the incident issue tracker or in the #master-broken Slack channel.

    1 Message
    :book: CHANGELOG missing:

    If this merge request needs a changelog entry, add the Changelog trailer to the commit message you want to add to the changelog.

    If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.

    Reviewer roulette

    Category Reviewer Maintainer
    backend @morefice profile link current availability (UTC+1, 8 hours behind author) @dskim_gitlab profile link current availability (UTC+11, 2 hours ahead of author)
    frontend @fernando-c profile link current availability (UTC-6, 15 hours behind author) @blabuschagne profile link current availability (UTC+1, 8 hours behind author)
    test for spec/features/* @morefice profile link current availability (UTC+1, 8 hours behind author) Maintainer review is optional for test for spec/features/*

    Please refer to documentation page for guidance on how you can benefit from the Reviewer Roulette, or use the GitLab Review Workload Dashboard to find other available reviewers.

    If needed, you can retry the :repeat: danger-review job that generated this comment.

    Generated by :no_entry_sign: Danger

    Edited by ****
  • :tools: Generated by gitlab_quality-test_tooling.


    :snail: Slow tests detected in this merge request. These slow tests might be related to this merge request's changes.

    Click to expand
    Job File Name Duration Expected duration
    #8914935345 ee/spec/features/groups/analytics/visualizations_spec.rb#L40 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics when using project based historical statistics behaves like renders metrics comparison tables renders the Lifecycle metrics table 65.55 s < 50.13 s
    #8939913745 ee/spec/features/groups/analytics/visualizations_spec.rb#L40 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics when using project based historical statistics behaves like renders metrics comparison tables renders the Lifecycle metrics table 51.39 s < 50.13 s
    #9192490083 ee/spec/features/groups/analytics/visualizations_spec.rb#L35 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics behaves like renders metrics comparison tables renders the Lifecycle metrics table 51.08 s < 50.13 s
    #9221179443 ee/spec/features/groups/analytics/visualizations_spec.rb#L35 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics behaves like renders metrics comparison tables renders the Lifecycle metrics table 53.15 s < 50.13 s
    #9221517611 ee/spec/features/groups/analytics/visualizations_spec.rb#L35 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics behaves like renders metrics comparison tables renders the Lifecycle metrics table 53.85 s < 50.13 s
    #9228046589 ee/spec/features/groups/analytics/visualizations_spec.rb#L35 Analytics Dashboard Visualizations for dora_chart visualization when ClickHouse is enabled for analytics behaves like renders metrics comparison tables renders the Lifecycle metrics table 56.45 s < 50.13 s
    Edited by ****
  • Ezekiel Kigbo changed the description

    changed the description

  • Ezekiel Kigbo changed milestone to %17.9

    changed milestone to %17.9

  • Ezekiel Kigbo changed the description

    changed the description

    • Author Maintainer
      Resolved by Alex Pennells

      @hsnir1 @blabuschagne @lvanc in Add DORA metrics over time datasource for Singl... (!151885 - merged) we added some single stat tiles for the four DORA metrics, these havent been expanded upon since they need to be manually configured, but with Include VSD panels in the built-in visualizatio... (#508776 - closed) they will be available to select from the list of visualizations to add to a dashboard.

      This MR expands the data source to allow us to query both single values and time series data for the DORA metrics data source and adds relevant charts. I think this could be a first step towards replacing the CI/CD analytics page, at the very least it would provide some out of the box visualizations for DORA metrics. I made an example built in dashboard to illustrate their use.

      dora-metrics-dashboard

      There are a few ~ux issues, but it mostly works well, for example:

      • I hardcoded 180 days for testing, but should be able to easily support any of the options in the date range dropdown (although "today" wouldnt make a lot of sense for the chart)
      • The tooltip values dont get formatted correctly, so that will need a closer look
      • Currently no support for calculating the median/average lines, but this should not be too difficult
      • Connecting null values (the dotted lines in CI/CD analytics)
      • On the CI/CD analytics page, we use an Area chart for deployment frequency, but line chart for the others. I'm not sure why this is, but id be in favour of deciding on one chart type for consistency

      For now, my main goal is to clean this up so that the single state and chart visualizations are useful out of the box, if we think the demo dashboard is worth having as well I can include that. Eitherway this provides a starting point for Create a new Value Stream Dashboards for DORA (#460158)

      Edited by Ezekiel Kigbo
    • Author Maintainer
      Resolved by Alex Pennells

      note: I would have expected on smaller screens that gridstack would respect the order the panels are defined in the config file, but it seems to use the X/Y positions instead. It would be good to have a defined (or overrideable) sort order.

      Screenshot_2025-01-23_at_18.36.27

  • Ezekiel Kigbo added 2 commits

    added 2 commits

    Compare with previous version

  • Ezekiel Kigbo mentioned in merge request !178679 (closed)

    mentioned in merge request !178679 (closed)

  • Ezekiel Kigbo added 616 commits

    added 616 commits

    Compare with previous version

  • Ezekiel Kigbo changed the description

    changed the description

  • Ezekiel Kigbo added 1 commit

    added 1 commit

    • fd05a52d - wip - correctly support date range from filters

    Compare with previous version

  • Ezekiel Kigbo mentioned in merge request !178999 (merged)

    mentioned in merge request !178999 (merged)

  • Ezekiel Kigbo added 1332 commits

    added 1332 commits

    Compare with previous version

  • Ezekiel Kigbo added 1 commit

    added 1 commit

    Compare with previous version

  • Ezekiel Kigbo added 338 commits

    added 338 commits

    Compare with previous version

  • Ezekiel Kigbo added 285 commits

    added 285 commits

    • 74fdefc2...9df718f1 - 280 commits from branch master
    • 85fce1dd - Extend dora_metrics data source to query time series
    • 3d056919 - wip - minor cleanup
    • 5cb49b23 - wip - align naming for DORA metric aggregated visualizations
    • 8f035ede - wip - rename data source and update axis labels
    • 88d6a9e3 - wip - correctly support date range from filters

    Compare with previous version

  • Ezekiel Kigbo changed the description

    changed the description

  • Ezekiel Kigbo changed the description

    changed the description

  • Ezekiel Kigbo added 1290 commits

    added 1290 commits

    • 88d6a9e3...49f40fc2 - 1283 commits from branch master
    • db7560df - Adds the `experiment` status for analytics dashboards
    • 43b13fe2 - Update related docs
    • a1b704d5 - Extend dora_metrics data source to query time series
    • 5e7b0a56 - Extend dora_metrics data source to query time series
    • 49e54670 - wip - align naming for DORA metric aggregated visualizations
    • 86f5eb2e - wip - rename data source and update axis labels
    • adcf1965 - wip - correctly support date range from filters

    Compare with previous version

  • Ezekiel Kigbo added 1 commit

    added 1 commit

    • 4b585571 - wip - correctly support date range from filters

    Compare with previous version

  • Ezekiel Kigbo mentioned in merge request !180012 (merged)

    mentioned in merge request !180012 (merged)

  • Ezekiel Kigbo added 553 commits

    added 553 commits

    • 4b585571...ef378669 - 546 commits from branch master
    • f4404697 - Extend dora_metrics data source to query time series
    • 5ee92b54 - Address minor review comments
    • 2613f3b1 - Adds the `experiment` status for analytics dashboards
    • e25cdc4a - Update related docs
    • 76d7d5cb - wip - align naming for DORA metric aggregated visualizations
    • 5d3e1eea - wip - rename data source and update axis labels
    • 786e7921 - wip - correctly support date range from filters

    Compare with previous version

  • Ezekiel Kigbo added 628 commits

    added 628 commits

    • 786e7921...d4782129 - 618 commits from branch master
    • 78404d39 - Extend dora_metrics data source to query time series
    • d910bd3d - Address minor review comments
    • 4bc58c90 - Minor clean up tests
    • 55f0b9ca - Adds the `experiment` status for analytics dashboards
    • 6afd8b43 - Update related docs
    • 069d95f6 - wip - align naming for DORA metric aggregated visualizations
    • 93389931 - wip - rename data source and update axis labels
    • 269759ff - wip - correctly support date range from filters
    • 22021935 - wip - fix minor lints
    • 424d6dc8 - [skip ci] wip

    Compare with previous version

  • changed milestone to %17.10

  • Ezekiel Kigbo changed title from DRAFT: spike: dora metrics time series data source to DRAFT: MvC DORA metrics dashboard

    changed title from DRAFT: spike: dora metrics time series data source to DRAFT: MvC DORA metrics dashboard

  • Ezekiel Kigbo changed title from DRAFT: MvC DORA metrics dashboard to DRAFT: Add minimal DORA metrics dashboard

    changed title from DRAFT: MvC DORA metrics dashboard to DRAFT: Add minimal DORA metrics dashboard

  • mentioned in task #520052 (closed)

  • Ezekiel Kigbo added 463 commits

    added 463 commits

    • 424d6dc8...ef201489 - 453 commits from branch master
    • 6f7bb281 - Extend dora_metrics data source to query time series
    • 12fa25ca - Address minor review comments
    • 153137c2 - Minor clean up tests
    • c928d41e - Address minor review comments
    • ce60dce7 - wip - align naming for DORA metric aggregated visualizations
    • df25839b - wip - rename data source and update axis labels
    • 917b98d0 - wip - correctly support date range from filters
    • 23d06cee - wip - fix minor lints
    • 5bf26c42 - [skip ci] wip
    • d02163e4 - wip - minor linting fixes

    Compare with previous version

  • Ezekiel Kigbo added 518 commits

    added 518 commits

    Compare with previous version

  • Ezekiel Kigbo added 3 commits

    added 3 commits

    • 07f27bfe - Adds DORA metrics dashboard
    • cb419bd5 - Updates related tests
    • ed0c9aa2 - Added `dora_metrics_dashboard.yml` feature flag

    Compare with previous version

  • Ezekiel Kigbo marked this merge request as ready

    marked this merge request as ready

  • Ezekiel Kigbo changed title from Add minimal DORA metrics dashboard to Add DORA metrics dashboard MvC

    changed title from Add minimal DORA metrics dashboard to Add DORA metrics dashboard MvC

  • Ezekiel Kigbo changed the description

    changed the description

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading