Draft: Demo: DAP Impact Adoption view with in-flight GLQL changes
What does this MR do and why?
This is a draft demo integration branch and should not be merged as-is.
The branch is master plus the commits of four open merge requests, cherry-picked in this order, followed by one config commit:
- !254539 (merged) (previous-period trend column for GLQL tables)
- !254274 (merged) (share labels, category colors and subtitles for GLQL bar charts)
- !254628 (merged) (the new divergingBarChart display type)
- !254353 (merged) (the selected scope is kept in the URL as a
scopeparameter)
The heatMap display type from !254297 (merged) is already merged into master, so it needs no cherry-pick. The panel config that uses it is copied from the open follow-up !254305 (merged).
The config commit changes the Adoption view of ee/lib/gitlab/analytics/dashboards/system/dap_impact.yaml:
- New vs returning (WIP): now a bar chart over AiUsageEvent grouped by feature, limited to the chat and agent_platform features, so the chart has the two rows the design shows (new users cannot be queried as a split yet, so two features stand in for it). Uses shareLabels, colorBy: category, axisTitles: false, and a subtitle describing the split. Panel height reduced from 41 to 27 grid rows.
- Users by activity: was a bar chart, now a table with columns Activity (flowType) and Users (usersCount), sorted by users descending, with showTrends: true so it gets a "vs previous period" column.
- Sessions by tier and capability (WIP): was a column chart, now a heat map with flowType across the columns and created (monthly) down the rows, metric totalCount labelled "Sessions", filtered to the flow types duo_chat, software_development, code_review/v1, developer/v1 and fix_pipeline/v1. Months stand in for user tiers, since there is no tier dimension yet. Panel height reduced from 55 to 40 grid rows.
- Share of users vs share of sessions (WIP): no config change in this commit. The diverging bar chart comes from the commit in !254628 (merged).
- Group comparison (WIP): showTrends: true and displayConfig trendMetric: usersCount added, so its table gets the trend column too.
- The panels and section headers below the two shortened panels move up so the grid has no gaps.
Once each of the four source merge requests merges on its own, this branch can be rebased so only its own config commit remains.
References
- !254539 (merged): Add a previous-period trend column to GLQL analytics tables
- !254274 (merged): Add share labels, category colors and subtitles to GLQL bar chart
- !254628 (merged): Add a divergingBarChart GLQL display type
- !254353 (merged): Sync the analytics dashboard scope filter with the URL
- !254297 (merged): adds the heatMap GLQL display type (already merged into master)
- !254305 (merged): Render the DAP Impact sessions panel as a heat map
Screenshots or screen recordings
| Panel | Rendered on GDK |
|---|---|
| New vs returning (WIP) | ![]() |
| Users by activity | ![]() |
| Sessions by tier and capability (WIP) | ![]() |
| Share of users vs share of sessions (WIP) | ![]() |
| Group comparison (WIP) | ![]() |
How to set up and validate locally
- Enable ClickHouse for analytics in your GDK.
- Seed AI usage data for a few projects that share one group and have members. Run this once per project:
FILTER=ai_usage_stats PROJECT_ID=<id> SEED_AI_USAGE_STATS=1 bundle exec rake db:seed_fu. - Check out this branch.
- Run
gdk restart rails-web. The system dashboard YAML is read once per process and cached, so a restart is needed to pick up the config commit. - Visit
/explore/analytics_dashboards/dap_impact, choose the seeded group in the Scope picker, and open the Adoption tab. After you choose the group, the URL gains ascope=<group path>parameter, and reloading the page keeps that selection. - Confirm:
- New vs returning (WIP) shows two labelled bars.
- Users by activity shows a table with a "vs previous period" column of arrow badges.
- Sessions by tier and capability (WIP) shows a heat map grid with months as rows.
- Share of users vs share of sessions (WIP) shows a mirrored two-sided bar chart.
- Group comparison (WIP) shows a table with a trend column, where a project with no prior-period sessions shows a dash character in that cell.
- Opening
/explore/analytics_dashboards/dap_impact?view=1&scope=gitlab-orgdirectly pre-selects the gitlab-org group without using the picker.
The dashboard loader schema check passes, and every panel on the Adoption view rendered this way on a local GDK with seeded AI usage data, scoped to the gitlab-org group with the default "Last 30 days" range. Jest and RSpec were not re-run on the combined branch.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.




