A kestrel web ui.
Uses gunicorn + gevent for front end serving. Also uses gevent to make async requests to the kestrel servers for stats. It's still in early development so any suggestions or ideas are welcome.
- decoroute >= 0.8.1
- gevent >= 0.13.6
- gunicorn >= 0.13.4
- pykestrel >= 0.5.1
- webob >= 1.2b2
- Python 2.7+
- virtualenv (not really required, but it's a good idea)
- libevent 1.4+ (for gevent)
git clone https://github.com/matterkkila/kestrelweb.git cd kestrelweb virtualenv --no-site-packages . . bin/activate pip install -r requirement.txt python ./setup.py develop
Note: If libevent is installed in a non-standard location (I'm looking at you macports) you'll need to download the source distribution for gevent and install using something similar to:
pip install --no-install gevent #download only cd build/gevent python ./setup.py install --libevent /opt/local
Copy the local_settings.py.example to local_settings.py and edit the server list to reflect your queue servers.
cp local_settings.py.example local_settings.py
gunicorn -k gevent -w 2 kestrelweb.main:App
It's best to front gunicorn with something like nginx. It is also best to use nginx to serve the static files used by kestrelweb. Specifically anything in /static/* should be served by the proxy server.
You can filter the queue list on any field/value. Strings only support the '=' and '!=' comparisons and use the re.match() function. Numeric types support <, >, <=, >=, !=, = and will do the standard numeric comparison.
Feedback & Questions
Any comments, questions, feel free to send me a message on github at https://github.com/matterkkila
All patches and pull requests are welcome.