In-product instance level compute quota visualization
### Problem Description We want to build an in-product experience to view the usage of instance runners for the instance level for the following use cases: * View hosted runner usage for hosted runners for Dedicated * https://gitlab.com/groups/gitlab-com/gl-infra/gitlab-dedicated/-/epics/515+s & https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6174+s * Possibly use compute minute quota mechanism, to control spend within an organization (Might be Post-GA) ### Flow proposal This highlights the relevant part of the [overall billing flow](https://gitlab.com/groups/gitlab-com/gl-infra/gitlab-dedicated/-/epics/562#billing-flow-proposal) of the [parent epic](https://gitlab.com/groups/gitlab-com/gl-infra/gitlab-dedicated/-/epics/562). ```mermaid graph TD Customer[Customer runs job on runner] --> Gitlab[Gitlab Rails records job minutes on hosted runners] Customer --> GitlabRunner[GitLab runner stores usage information as logs] subgraph CustomerUsageVisualisation direction TB Gitlab --> Visualisation[Customer can use in-product compute minute dashboards to visualize and possibly control CI spent] end subgraph Internal Usage Records direction TB GitlabRunner --> DedicatedAccount[Runner logs are stored in the Dedicated account in S3] DedicatedAccount --> CentralAccount[Usage data is copied in central S3 owned by DataOps - SSOT for usage] CentralAccount --> Snowflake[Usage data is copied in Snowflake for internal analytics] Snowflake --> Tableau[Internal usage report dashboards in Tableau] end CentralAccount --> Zuora[Usage records are transferred into Zuora for billing] subgraph Billing direction TB Zuora --> SKU[Reduces open minute grant from pre-committed SKU] end classDef highlight fill:#ff9,stroke:#333,stroke-width:4px; class CustomerUsageVisualisation highlight; ``` ### Solution We want to build out an in-product usage quota dashboard, which allows to view instance runner usage **Backend** | Issue | Weight | Estimated Milestone | |--------|--------|-------------------| | https://gitlab.com/gitlab-org/gitlab/-/issues/498542+ | 3 | 17.7 | | https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6705+ | 3 | 17.8 or 17.9 | | https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6707+ | 3 | 17.8 | | Feature Flag Rollout (placeholder to be created with first MR) | 1 | 17.9 | **Frontend** | Issue | Weight | Estimated Milestone | |--------|--------| -------------------| | https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6343+ | 2 | | | https://gitlab.com/gitlab-org/gitlab/-/issues/332640+ | 3 | | Technical Writing | Issue | Weight | Estimated Milestone | |--------|--------| -------------------| | https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6708+ | 2 | In parallel we will will work on the architectural blueprint for the next architecture of hosted runners in all distributions. https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/team/-/issues/6569+ Once the MVC is released we should work on using the new tables as the source of truth and retiring `ci_project_monthly_usages` and `ci_runner_monthly_usages` to avoid update contention: https://gitlab.com/gitlab-org/gitlab/-/issues/490968
epic