Julien Le Cléach
2016-12-20 10:09:34 UTC
Hi all,
Until recently, I was working as a software architect in embedded systems.
In my company, the software applications are generally distributed over
several machines.
There is a common need to supervise these applications and to provide
utilities to start/stop them dynamically. It was quite obvious that
Supervisor could help. However, it only deals with a single machine and the
solutions that are referenced on the Supervisor web site (
http://supervisord.org/plugins.html#dashboards-and-
tools-for-multiple-supervisor-instances) donât really help to maintain the
status and the integrity of a distributed application. So I have
implemented for my company a C++ solution dealing with multiple Supervisor
instances, but mostly centered on the applications rather than on the
machines.
A few months ago, I have decided to start an open-source Python project
based on the same principles (and learn the Python language at the same
time). âSupervisorsâ can be used as a Supervisor plugin, using the
supervisor configuration file.
The project can be found here:
https://github.com/julien6387/supervisors.
It comes with the following additional functions:
* extended XML-RPC API,
* extended supervisorctl,
* new HTTP interface including basic statistics about processes and
machines,
* Python and JAVA clients for XML-RPC API and event subscription.
The documentation is available in the supervisors/doc directory of the
installation. Supervisors still requires a lot of formal testing and there
are some functions not implemented yet. However, it should already do most
of the job.
The documentation and the HTTP interface have been written with a CSS
compliant only with a recent firefox and is currently not readable with
other browsers, sorry.
Your comments are most welcome.
Regards,
Julien Le Cléach.
Until recently, I was working as a software architect in embedded systems.
In my company, the software applications are generally distributed over
several machines.
There is a common need to supervise these applications and to provide
utilities to start/stop them dynamically. It was quite obvious that
Supervisor could help. However, it only deals with a single machine and the
solutions that are referenced on the Supervisor web site (
http://supervisord.org/plugins.html#dashboards-and-
tools-for-multiple-supervisor-instances) donât really help to maintain the
status and the integrity of a distributed application. So I have
implemented for my company a C++ solution dealing with multiple Supervisor
instances, but mostly centered on the applications rather than on the
machines.
A few months ago, I have decided to start an open-source Python project
based on the same principles (and learn the Python language at the same
time). âSupervisorsâ can be used as a Supervisor plugin, using the
supervisor configuration file.
The project can be found here:
https://github.com/julien6387/supervisors.
It comes with the following additional functions:
* extended XML-RPC API,
* extended supervisorctl,
* new HTTP interface including basic statistics about processes and
machines,
* Python and JAVA clients for XML-RPC API and event subscription.
The documentation is available in the supervisors/doc directory of the
installation. Supervisors still requires a lot of formal testing and there
are some functions not implemented yet. However, it should already do most
of the job.
The documentation and the HTTP interface have been written with a CSS
compliant only with a recent firefox and is currently not readable with
other browsers, sorry.
Your comments are most welcome.
Regards,
Julien Le Cléach.