A Perl Curses::UI interface for uWSGI metrics subsystem
Clone or download
Latest commit c116a23 Nov 7, 2013
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Initial commit Nov 7, 2013
README.md Update README.md Nov 7, 2013
bars.pl first public commit Nov 7, 2013
screenshot.png added screenshot.png Nov 7, 2013



A Perl Curses::UI interface for uWSGI metrics subsystem



This terminal interface allows you to monitor (in almost-realtime) values gathered/collected from the uWSGI metric subsystem.

You can monitor multiple metrics, each one will be showed as a Curses::UI::Progressbar

For each metric you can define a maximum value and a 'threshold' value. Metrics with a value higher than the specified threshold will be showed in red


The only additional requirement is the Curses::UI module.

cpanm Curses::UI

Operational modes

Currently the metrics can be gathered in 2 ways:

'stats' => get the values from a uWSGI stats server

'udp' => bind to a udp address and wait for updates directly sent by a uWSGI server

Examples (stats mode)

uwsgi --http-socket :9090 --processes 2 --stats :9393 --psgi yourapp.pl
perl bars.pl --addr worker.0.requests:2000:450 worker.1.requests:1000 worker.2.requests:1000

this will start gathering 3 metrics (with the first one with a threshold of 450)

Examples (udp mode)

uwsgi --http-socket :9090 --processes 2 --stats-push socket:  --psgi yourapp.pl
perl bars.pl --mode udp --addr uwsgi.worker.0.requests:2000:450 uwsgi.worker.1.requests:1000 uwsgi.worker.2.requests:1000

this time we bind to udp port 9292 and instruct uWSGI to 'push' metrics to this address.

Pay attention, stats pushers add a prefix to each metric ('uwsgi' in such a case), remember it !!!


--freq => set the update frequency

--mode => set the mode ('udp' or 'stats')

--addr => set the address

metric:max:threshold => you can specify all the metrics you need, max and threshold are optionals. By default a max of 100 is assumed