Circus Sprint Report

Benoit and I organized a sprint at Pycon for Circus, the process watcher we're building (see

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:

And have a look at the architecture here:

Stuff we did during the sprint:

  • more test coverage
  • hooked the project in Travis -!/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 :
  • 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