The OpenStack Rate Limit Middleware enforces rate limits and enables traffic shaping for OpenStack APIs per tuple of
- target type URI
- action
- scope (project, host address)
It also supports enforcing global and scoped rate limits. More details can be found in the documentation.
Service-to-service requests (those that carry a valid Keystone-confirmed
service token, as injected by keystonemiddleware) can optionally be
bypassed via the bypass_service_token option — see
Bypass for service-to-service requests.
This middleware requires the classification for OpenStack requests.
The openstack-watcher-middleware can be used to classify requests
based on the DMTF CADF specification.
In terms of rate limiting, a request to an OpenStack service can be described by an action, target type URI and its scope.
Moreover, this middleware only works with Python 3 version and
uses Redis >= 5.0.0 as a backend to store rate limits.
It's better to use Redis without persistent storage.