Circus Sprint Report

Benoit and I organized a sprint at Pycon for Circus, the process watcher we're building (see http://ziade.org/2012/02/24/circus-a-process-controller).

We had quite some interest on the topic, and a few contributors. I was myself naviguating between the Circus sprint and the Packaging one. On Circus we were most of the time discussing features and adding test coverage and documentation.

Unfortunately, a few bugs prevented us from releasing the first public version, but that should be out there in a few days.

You can read the doc while we're building it here: http://circus.readthedocs.org/en/latest/index.html

And have a look at the architecture here: http://circus.readthedocs.org/en/latest/architecture

Stuff we did during the sprint:

  • more test coverage
  • hooked the project in Travis - http://travis-ci.org/#!/mozilla-services/circus
  • more doc
  • flapping detection
  • added pub/sub channel to allow any client to watch over what's going on -- any event, like a process that restarts, is published in the pub/sub channel
  • started an pub/sub client example: a web monitoring page based on websockets, using Flask -- that app will be a subscriber of Circus. (not in the repo yet)

Stuff we need to finish / Features we're thinking about:

  • factor out the flapping detector as a pub/sub plugin.
  • stream the process stdout/stderr so clients can subscribe to them
  • refactor how the commands are plugged in Circus -- mainly to be able to produce a doc like this one : http://www.redis.io/commands
  • add an encryption layer for the zmq channels
  • discuss with Chris McDonough wrt Supervisord common bits.

And welcome to our new contributors, Neil Chintomby and Ori Livneh !

If you want to have a look, for us at https://github.com/mozilla-services/circus