Internal Limits With Allocation Percentage
The allocation_percentage field allows users to allocate a specific percentage of a main quota to different internal quotas, ensuring more flexible and precise control over quota usage among different user groups or environments.
Example Use Case
In the example below, a primary quota (MyQuota) limits API usage to 100,000 requests per month. We then allocate 20% of this quota to the staging environment and 80% to production.
- Primary Quota: Limits API usage to a maximum of 100,000 requests per month.
- Staging Quota: Allocates 20% of the primary quota, up to 20,000 requests.
- Production Quota: Allocates 80% of the primary quota, up to 80,000 requests.
Example YAML Configuration
/etc/lunar-proxy/quotas/{fileName}.yaml
quotas:
  - id: MyQuota
    filter:
      url: httpbin.org/get
    strategy:
      fixed_window:
        static:
          max: 100
          interval: 1
          interval_unit: month
          monthly_renewal:
            day: 1
            hour: 11
            minute: 0
            second: 0
            timezone: UTC
internal_limits:
  - id: LimiterStaging
    parent_id: MyQuota
    filter:
      header:
        key: X-Group
        value: staging
    strategy:
      allocation_percentage: 20
  - id: LimiterProd
    parent_id: MyQuota
    filter:
      header:
        key: X-Group
        value: production
    strategy:
      allocation_percentage: 80
note
- Combination Restriction: We do not allow a combination of both fixed_window and allocation_percentage strategies within the same internal_limitslist.
- Zero Percent Restriction: An allocation of 0% is not allowed and will return an error.
- Total Allocation Requirement: The total percentage allocations must add up to exactly 100% for the quota configuration to be valid.