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