Show real user tiers on the DAP Impact heat map

What does this MR do and why?

Finishes the "Sessions by tier and capability" heat map on the Adoption view of the DAP Impact dashboard. It was a placeholder while GLQL had no tier dimension — glql#209 (closed) added one to the DuoWorkflow source, and it shipped in GLQL 0.39.0, already pinned in this repo.

  • The panel queries DuoWorkflow with flowType and userTier(thresholds=[5, 25, 100]), sorted userTier desc so the heaviest tier is the top row. Before, it used AgentPlatformSession with created(monthly) standing in for the tier rows.
  • The hardcoded five-value flowType allowlist is gone, so every capability gets a column. It was only there to keep the placeholder's columns wide enough to read.
  • (WIP) and the placeholder tooltip line are gone.
  • The aggregation engine returns opaque tier_0, tier_1, ... values and leaves naming to the client, so dimensionLabelFormatter gains a second parameterised-dimension branch, keyed on thresholds rather than granularity. It delegates to a new tier_band util the same way the granularity branch delegates to date_bucket.
  • That util also takes over the tier names and index parsing that the Session intensity by tier data source held privately, so both panels band users from one definition. A threshold set with no names falls back to a range derived from the thresholds themselves.

Related to https://gitlab.com/gitlab-org/gitlab/-/work_items/628031

Screenshots or screen recordings

Screenshot 2026-09-22 at 12.09.17 PM.png

How to set up and validate locally

  1. In a Rails console: Feature.enable(:dap_impact_v1).
  2. Make sure Siphon is replicating into ClickHouse (siphon.enabled: true in gdk.yml, Postgres running with wal_level = logical).
  3. Open Explore > Analytics dashboards > DAP Impact, and select a group with flow data. On GDK seed data, flightjs has the widest tier spread and gitlab-org the most capabilities.
  4. On the Adoption view, check the "Sessions by tier and capability" panel: tier rows named Light (1–4) through Power (100+), heaviest on top, one column per capability, and per-tier session totals agreeing with the "Session intensity by tier" table lower down the same view.

All 46 GLQL blocks in the dashboard compile against GLQL 0.39.0.

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.

🤖 Generated with Claude Code

Edited by Rudy Crespo

Merge request reports

Loading
Loading