Circus Ringmaster. A Tcl/Tk Control Panel for Circus.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
MANIFEST.in
README.md
in_action.png
ringmaster.py
setup.cfg
setup.py

README.md

ringmaster

Circus Ringmaster. A Tcl/Tk Control Panel for Circus.

Circus is a program that runs and watches processes and sockets.

Circus Ringmaster is a Tck/Tk interface to monitor, start and stop those processes.

Ringmaster in action

To the left, on the image above, are the Circus watchers. In the center, a green string indicates the number of processes of the watcher, the current use of CPU, and memory. To the right, command buttons – incr/decr for normal watchers; and start/stop for singleton watchers.

Requirements

Ringmaster is built on top of Python 3.4 (asyncio) and aiozmq.

Circus itself is not a code dependency, but without it this program does not have much use.

Installation

Latest release.

pip install ringmaster

Latest commit on the master branch of the project's Git repository.

mkdir ringmaster
cd ringmaster
curl -L https://github.com/viotti/ringmaster/tarball/master | tar -xz --strip 1
python setup.py sdist
pip install dist/ringmaster-*.tar.gz

Installation (OS X)

  1. Download and install ActiveTcl from http://www.python.org/download/mac/tcltk. Pay atention to the recommended version on the web page.

  2. Download and Install Python 3.4 from http://www.python.org/downloads.

  3. Install Ringmaster.

     /Library/Frameworks/Python.framework/Versions/3.4/bin/pip3 install ringmaster
    

This install order is important. It will make Python link with the ActiveTcl library, instead of linking with the library shipped with OS X.

Optionally, put the Python 3 binaries in your PATH.

export PATH=/Library/Frameworks/Python.framework/Versions/3.4/bin:$PATH

Basic Use

Just type ringmaster. There is no command line option.

ringmaster

The program will establish communication with the Circus daemon and display the watchers on its GUI.

Troubleshooting

MacPorts on OS X

The Python 3.4 MacPorts distribution present a series of dificulties to run Ringmaster on a OS X computer.

First, it does not come with the tkinter library, which is provided as a separate pacakge.

Second, it will install the Ringmaster executable script in a nonstandard location (/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin).

To prevent issues, use the following installation steps.

sudo port selfupdate
sudo port install py34-tkinter py34-pip
sudo pip-3.4 install ringmaster --install-option='--install-scripts=/usr/local/bin'

Finally, if you install Ringmaster on a virtual environment created with virtualenv-3.4 from MacPorts, it will abort with a ImportError: No module named '_tkinter' exception. This is because the virtual environment insultates itself from Python packages installed in the system. The solution here is to link the Tkinter shared object to the site-packages directory of the environment.

ln -s $(port -q contents py34-tkinter | grep _tkinter.so) $VIRTUAL_ENV/lib/python3.4/site-packages

TODO

  • Implement command line options for the connection endpoints.
  • Improve the watcher details dialog.