https://github.com/sapcc/openstack-rate-limit-middleware
OpenStack Rate Limit Middleware
https://github.com/sapcc/openstack-rate-limit-middleware
openstack openstack-middleware rate-limit rate-limiting
Last synced: about 1 year ago
JSON representation
OpenStack Rate Limit Middleware
- Host: GitHub
- URL: https://github.com/sapcc/openstack-rate-limit-middleware
- Owner: sapcc
- License: apache-2.0
- Created: 2018-03-28T15:58:32.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T14:36:12.000Z (almost 2 years ago)
- Last Synced: 2025-03-30T16:46:49.053Z (about 1 year ago)
- Topics: openstack, openstack-middleware, rate-limit, rate-limiting
- Language: Python
- Homepage: https://sapcc.github.io/openstack-rate-limit-middleware
- Size: 780 KB
- Stars: 4
- Watchers: 53
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# OpenStack Rate Limit Middleware
[](https://travis-ci.org/sapcc/openstack-rate-limit-middleware) [](https://opensource.org/licenses/Apache-2.0)
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.
## Prerequisites
This middleware requires the classification for OpenStack requests.
The [openstack-watcher-middleware](https://github.com/sapcc/openstack-watcher-middleware) can be used to classify requests
based on the [DMTF CADF specification](https://www.dmtf.org/standards/cadf).
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.
## Documentation
- [Installation & WSGI configuration](docs/install.md)
- [How to configure rate limits](docs/configure.md)
- [User guide](docs/user.md)
- [Testing](docs/testing.md)