@dmeshcharakou - The comment you link misses the problem we face at scale. Having a single value that all org respects doesn't work in practice. We know this from operating .com at scale where our rate limits are set higher than they should be in order to not penalise heavy legitimate use.
Please correct me if I am reading this wrong, but the ADR looks like it plans to have one limit(value) for all organisations and one limit(value) for users.
What we are talking about here is for each organisation to have it's own limit, potentially defaulted on the plan level - e.g.:
Does that make sense?
Sam Wiskow (650617bb) at 13 Mar 15:51
Move Capacity Planning into Monitoring sidebar menu
... and 13 more commits
Note: This is not behaviour that we want on Dedicated. Customers are application administrators but not platform operators so we actually don't want to expose things like rate limits. Customers mistakenly changing settings in the admin panel has caused incidents before.
Cost control is likely the customer behaviour behind this intent. If this is the right way to implement it, makes senes to me.
This approach sounds like we are targeting a single global limit. Finding a single value that is high enough to support power users and low enough to control use and abuse broadly is an impossible task.
If we are able to design this system from the ground up, not relying on legacy code and infrastructure, it would make sense to target per user quotas that automatically get set low and can be raised as legitimate usage grows. It's far harder to bring a limit down than raise it.
We've positioned some of this in https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/rate_limiting_simplification/#phase-3-implement-a-rate-limit-interface
Some sort of implementation of quotas on a per customer basis will be required if customers are going to be able to set limits on their consumption right? A broad limit across the system does not allow for the fine grained control we know is a limit of other systems today.
Phase 4: Data Fetching & Integration has been successfully completed!
Backend:
Frontend Services:
Frontend Components:
Testing:
Phase 5: Styling & UX Polish is ready to begin
Status Update - Phase 2: Controller & View Layer
Current Status:
Completed:
Key Achievements:
Ready for: Phase 3 - Vue Components
Status Update - Phase 1: Data Access & API Layer
Current Status:
Completed:
Admin::CapacityPlanningService - Fetches and transforms Tamland forecast dataCapacityPlanning::Forecast model - Includes business logic for SLO calculations and validationAdmin::ForecastCacheService - Managing caching from GCS bucketAdmin::DashboardController extended with capacity planning data endpointsKey Achievements:
Ready for: Phase 2 - Controller & View Layer
Status Update - Phase 4: Data Fetching & Integration
Current Status:
Completed:
capacity_planning_dashboard) integratedIn Progress:
Next Steps:
Blockers: None
Status Update - Phase 3: Vue Components - Create Interactive Visualizations
Current Status:
Completed:
ForecastChart component - Time series with confidence intervalsHeadroomSummaryTable component - Sortable and filterableComponentDetailModal component - Detailed forecast viewRiskIndicator component - Visual risk badgeKey Achievements:
Ready for: Phase 4 - Data Fetching & Integration