openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #09322
Re: Distributed rate-limiting
Hi Kevin,
A couple of quick questions:
- As you get the tenant id from the context I assume this module has to come after the authentication in the pipeline. Have you thought about using the tenant_id in the URL instead ? (I'm thinking of the case where you want rate limit requests into the authentication system as well as Nova itself).
- Does this work for EC2 as well as OSAPI ?
Cheers,
Phil
-----Original Message-----
From: openstack-bounces+philip.day=hp.com@xxxxxxxxxxxxxxxxxxx [mailto:openstack-bounces+philip.day=hp.com@xxxxxxxxxxxxxxxxxxx] On Behalf Of Kevin L. Mitchell
Sent: 16 March 2012 21:45
To: openstack@xxxxxxxxxxxxxxxxxxx
Subject: [Openstack] Distributed rate-limiting
Howdy, folks. I've been working on a replacement for nova's rate-limiting middleware that will handle the multiple-node case, and I've developed a fairly generic rate-limiting package, along with a second package that adapts it to nova. (This means you could also use this rate-limiting setup with, say, glance, or with any other project that uses Python middleware.) Here is some information:
* Turnstile
Turnstile is a piece of WSGI middleware that performs true distributed
rate-limiting. System administrators can run an API on multiple
nodes, then place this middleware in the pipeline prior to the
application. Turnstile uses a Redis database to track the rate at
which users are hitting the API, and can then apply configured rate
limits, even if each request was made against a different API node.
- https://github.com/klmitch/turnstile
- http://pypi.python.org/pypi/turnstile
* nova_limits
This package provides the ``nova_limits`` Python module, which
contains the ``nova_preprocess()`` preprocessor, the
``NovaClassLimit`` limit class, and the ``NovaTurnstileMiddleware``
replacement middleware class, all for use with Turnstile. These
pieces work together to provide class-based rate limiting integration
with nova.
- https://github.com/klmitch/nova_limits
- http://pypi.python.org/pypi/nova_limits
Both packages should be fairly well documented (start with README.rst), and please feel free to log issues or make pull requests.
--
Kevin L. Mitchell <kevin.mitchell@xxxxxxxxxxxxx>
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to : openstack@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp
Follow ups
References