Rate Limits

Registered by Michael Basnight

Rate Limits

Blueprint information

Status:
Complete
Approver:
Nikhil Manchanda
Priority:
High
Drafter:
Dan Nguyen
Direction:
Approved
Assignee:
Dan Nguyen
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
None
Started by
Nikhil Manchanda
Completed by
Dan Nguyen

Related branches

Sprints

Whiteboard

Desc
--------
The basic requirement is to implement global limits that can be altered via configuration changes. There should be the ability to set different values for different HTTP verbs.

Details
----------
This will only limit HTTP requests at the API level. Currently similar functionality of Rate Limiting exists in the Nova and Cinder projects. We want to mirror what is in Nova but there is not a good way to use the code without porting it at the moment.

The feature has two parts. The first is applying a filter by modifying the request path via the pipeline.
The second is creating an API call to display the current rate limits.

Proposed changes
--------------------------
1. Port the code over from Nova, test like crazy.
2. Try to get Rate Limits into oslo (Openstack Common) by begging

Notes:
---------
There is an API call for the rate limits that allows a client to view the limits.
This depends on Quotas (absolute limits):

https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/limits.py#L88

PLZ note that the resources used should also be a part of this call. Its seen in the v2 api for /limits in the api ref

Client
---------
At some point we need to update the python-reddwarf client once we settle on the API call.

Resources
---------------
http://api.openstack.org/api-ref.html

Note the there are two API calls for /{tenant_id}/limits depending on the version.

Gerrit topic: https://review.openstack.org/#q,topic:bp/rate-limits,n,z

Addressed by: https://review.openstack.org/21989
    Initial commit for rate limits. Work in progress.

Addressed by: https://review.openstack.org/23891
    Update python-reddwarfclient version to 0.1.3

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.