Releases: julien6387/supvisors
Supvisors 0.18.3
0.18.3 (2024-06-05)
-
Recreate the internal proxy to the local Supervisor if older than 20 minutes, in order to palliate the closure
of all channels inactive during 30 minutes in the Supervisor HTTP server.
This fixes a rare bug that has been introduced in Supvisors 0.17, and whose occurrence has greatly
increased after the refactoring of the Supvisors 0.18 internal communications. -
Swap Memory and Network statistics cards in the Supvisors Web UI.
Supvisors 0.18.2
0.18.2 (2024-05-27)
-
Handle PermissionError exception when trying to get disk usage.
-
Update CSS for overflow parts in the Supvisors Web UI.
Supvisors 0.18.1
0.18.1 (2024-05-26)
-
Fix the different perception of Supvisors instances about a process whose state is forced.
-
Fix regression using the
SINGLE_NODE
distribution rule. -
Share the configuration of
stdout
andstderr
log files between all Supvisors instances.
has_stdout
andhas_stderr
are added to the result of the XML-RPCget_local_process_info
. -
When the
software_name
option is set, it is used as a prefix in all log traces. -
Add disk usage and read/write statistics to the Supvisors Web UI.
Disk statistics are published to the event interface and the JAVA client has been updated accordingly. -
In the Application page of the Supvisors Web UI, add the possibility to expand the process information
from all Supvisors instances where it is configured.
In the event of a process conflict, aConciliate
button is displayed instead od a list of Supvisors instances.
Clicking on this button displays the Conciliation page. -
Split the Main and Conciliation pages of the Supvisors Web UI.
-
The conflicting processes are highlighted in the Main page of the Supvisors Web UI.
-
Change the access of the Conciliation page of the Supvisors Web UI, by clicking on the
CONCILIATION
state.
A click on the Supvisors logo always brings back the Main page. -
Fix the renaming of
DEPLOYMENT
state asDISTRIBUTION
in the JAVA client.
Supvisors 0.18
0.18 (2024-05-02)
-
Refactoring of the Supvisors internal communications.
Theinternal_port
of the Supvisors section in the Supervisor configuration file is no longer needed.
As a consequence, thesupvisors_list
option is simplified as follows:<identifier>host_name:http_port
.
The transitionalSupvisorsInstanceStates.ISOLATING
state has been removed.
The remote Supvisors instance becomesSILENT
as soon as the published events fails due to a transport issue. -
Implement Issue #50.
A new tagoperational_status
in the Application rules allows to declare the formula applicable to evaluate the
application operational status.
status_formula
is added to the result of the XML-RPCget_application_rules
. -
Implement Issue #15.
AStarterModel
has been added to Supvisors to give a prediction of the application distribution when started.
The command is available through the new XML-RPCstest_start_application
andtest_start_process
and have been
added tosupervisorctl
. -
The Supvisors
core_identifiers
option and the Supvisors rules can now accept indifferently Supervisor
identifiers or keys with thehost:http_port
format. -
Update the
get_instance_info
XML-RPC so that the function accepts a stereotype as parameter.
As a consequence, it now returns a list of dictionaries. -
Add a
lazy
attribute to theupdate_numprocs
XML-RPC, so that when set combined to a numprocs decrease,
Supvisors defers the obsolete processes deletion from the Supervisor configuration only when the processes stop
(exit, crash or later user request) instead of stopping them immediately. -
Add monotonic time in internal model and exchanges to cope with time updates while Supvisors is running.
Impact on the XML-RPCget_instance_info
,get_process_info
and on the event interface for instance status
and process event. -
Add new
get_statistics_status
,enable_host_statistics
,enable_process_statistics
,update_collecting_period
XML-RPCs to support the possibility to get and update the collection of host and process statistics.
The corresponding commandsstats_status
,enable_stats
andstats_period
have been added tosupervisorctl
.
The JAVA client includes the new XML-RPCs. -
Add new
get_all_inner_process_info
andget_inner_process_info
XML-RPCs to support debug investigation.
They return internal information on the processes declared on a Supvisors instance. -
Move the host statistics collector to the statistics collector process.
The optionstats_collecting_period
is now applicable to host statistics collector. -
Re-apply the eventual process
extra_args
when restarting the application. -
In the Supervisors navigation menu of the Web UI, add a red light to Supervisor instances having raised a failure.
-
Allow the display of a software name and icon at the top of the Supvisors Web UI.
The optionssoftware_name
andsoftware_icon
have been added to the Supvisors section of the Supervisor
configuration file. -
All internal identifiers are now based on the
host:http_port
format. -
Rename the
DEPLOYMENT
state asDISTRIBUTION
state to lift ambiguity ("deployment" is rather connoted when dealing
with the orchestration domain). -
Rework Supvisors
RPCInterface
exceptions. -
Rework the Web UI.
Supvisors 0.17.4
0.17.4 (2024-03-24)
-
Fix bug that was randomly blocking Supvisors on restart or shutdown, due to a stdout flush hanging in
multiprocessing bowels. The statistics Process is now started before any other thread. -
guest
time removed from because CPU calculation because it is already accounted inuser
time on Linux. -
Fix process CPU so that it corresponds to the Linux
top
result. -
Use the latest versions of Sphinx-related modules for documentation, as
sphinx-5.0
is now the minimal dependency.
Supvisors 0.17.3
0.17.3 (2023-12-14)
-
Fix regression when displaying the Network statistics in the Supvisors Web UI.
-
Add restrictions to
flask-restx
dependencies.
Supvisors 0.17.2
0.17.2 (2023-12-04)
-
Fix rare I/O exception by joining the
SupervisorsProxy
thread before exiting theSupvisorsMainLoop
. -
Fix rare exception when host network statistics are prepared for display in the Supvisors Web UI in the event
where network interfaces have different history sizes. -
Fix the Supvisors identifier possibilities when using the distribution rule
SINGLE_INSTANCE
. -
Update the process statistics collector thread so that it exits by itself when
supervisord
is killed. -
Improve the node selection when using the distribution rule
SINGLE_NODE
. -
Use an asynchronous server in the Supvisors internal communications.
The refactoring fixes an issue with the TCP server that sometimes wouldn't bind despite theSO_REUSEADDR
set. -
Restore the
action
class in the HTML of the Supvisors Web UI. -
CI targets added for Python 3.11 and 3.12.
Supvisors 0.17
-
Fix Issue #112.
Write the disabilities file even if no call todisable
andenable
XML-RPCs have been done.
Try to create the folder at startup if it does not exist. -
Fix a case where the
Starter
would block if the process reaches the expected state without reception
of the corresponding event. -
Fix typo for
zmq
requirement when installing Supvisors frompypi
. -
Fix
flask-restx
dependency in setup according to Python version. -
Fix uncaught exception the request to start a process is rejected due to a lack of resources.
The exception was dependent from the Python version (absent in 3.6 but raised in 3.9). -
Monkeypatch fix of Supervisor Issue #1596.
Shutdown of the asyncore socket before it is closed. -
Improve robustness against network failures. All Supervisor events are applied to the local Supvisors instance
before they are published, so that it remains functional despite a network failure.
The internal TCP sockets are rebound when a network interface becomes up (requirespsutil
). -
Provide a discovery mode where the Supvisors instances are added on-the-fly without declaring them in
thesupvisors_list
option. The function relies on a Multicast Group definition (optionsmulticast_group
,
multicast_interface
andmulticast_ttl
added to that purpose).
The attributediscovery_mode
is added to theget_state
andget_instance_info
XML-RPCs. -
Add a new option
stereotypes
to support the discovery mode. Theidentifiers
of the Application and Program rules
can now reference a Supvisors stereotype in addition to identifiers and aliases.
By extension, it is made available to the non-discovery mode. -
Add a new option
syncho_options
to enable the user to choose the conditions putting an end to the Supvisors
synchronization phase.
More particularly when using the newUSER
condition, the Supvisors Web UI provides a means to end the
INITIALIZATION
state, with optional Master selection. The command is also available as an XML-RPCend_synchro
and has been added tosupervisorctl
. -
The new item
@
in theidentifiers
of the Program rules takes the behavior of the item#
as it was
before Supvisors version 0.13, i.e. the assignment is strictly limited by the length of theidentifiers
list,
without roll-over.
NOTE: This is not available for Application rules. -
Use host aliases when looking for the local Supvisors instance.
-
Use IP address rather than host identification when dealing with
SINGLE_NODE
starting strategy. -
To prevent the situation that led the
Starter
to block, a new stateCHECKED
is added toSupvisorsInstanceStates
,
which is actually a pre-RUNNING
state.
Such a Supvisors instance is considered active and is updated with received events but cannot be part of any
starting sequence until all starting jobs in progress are completed. -
Limit the consideration of the process forced state to display in the Application page of the Supvisors Web UI,
so that it does not interfere with the real process state. -
Add
master_identifier
to the output of the XML-RPCsget_supvisors_state
andget_instances_info
.
Thesupervisorctl
commandssstate
andinstance_status
have also been updated. -
Monkeypatch Supervisor on-the-fly so that its logger is thread-safe and add log traces in Supvisors threads.
-
Simplify the Supvisors state machine and replace the states
RESTART
andSHUTDOWN
by a single stateFINAL
. -
Highlight the process line hovered by the cursor in the Supvisors Web UI.
-
Remove the figures from the Supvisors Web UI when
matplotlib
is not installed. -
Add RPC
changeLogLevel
to the JAVA client. -
Do not catch XmlRpc exceptions in the JAVA client.
-
Refactoring of the Supvisors internal communications.
Supvisors 0.16
0.16 (2023-03-12)
-
Add
websockets
as an option to the Supvisors event listener (Python 3.7+ only). -
Re-design the
PyZMQ
event listener using thezmq.asyncio
support for better commonalities
with thewesockets
solution. -
Re-design the statistics collection and compilation.
-
The option
stats_enabled
takes additional values to control host and process statistics independently. -
The option
stats_collecting_period
has been added to set the minimum time between process statistics collection. -
The option
stats_periods
accepts float values, not necessarily multiples of 5. -
Fix Issue #54.
Add host and process statistics to the Supvisors event interface. -
Fix children process CPU times in statistics.
-
Fix Solaris mode not taken into account for the process mean CPU value in the Supvisors Web UI.
-
Only one Supvisors instance is running when both
unix_http_server
andinet_http_server
sections are defined
in the supervisor configuration file. -
Fix Flask
start_args
to pass the extra arguments in the URL attributes rather than in the route. -
The local Supvisors instance is identified as the item having the same fully qualified domain name
(as returned bysocket.gethostaddr
andsocket.getfqdn
) among the items of thesupvisors_list
option. -
Use the HTTP server port to help the identification of the local Supvisors instance when multiple items
of thesupvisors_list
option fit and identifier is not set. -
The attribute
process_failure
is added to theget_instance_info
XML-RPC to inform if there is a process failure
in the Supvisors instance. The attribute is also provided in the event interface and in theinstance_status
option of thesupervisorctl
command. -
Raise an exception when the matching Supvisors instance in the
supvisors_list
option is inconsistent
with the local configuration. -
Add a Supvisors logo.
Supvisors 0.15
update JAVA test