/supervisor-gateway

A RESTful supervisor gateway with paginated and cached process info

Primary LanguagePythonMIT LicenseMIT

Test Suite Package version Supported Python versions

supervisor-gateway

A RESTful supervisor gateway with paginated and cached process info

Features

  • RESTful API to supevisord support
  • A eventlistener role for events subscription
  • Cached status API with pagination

Architecture

supervisor-gateway

Install

from pypi

pip install supervisor-gateway

or install locally

make install

Usage

supervisor-gateway running as child process of supervisord, there is a supervisor config example

[eventlistener:supervisor_gateway]
command = python -m supervisor_gateway
events = PROCESS_STATE,SUPERVISOR_STATE_CHANGE,PROCESS_GROUP
environment = SG_LOG_LEVEL="DEBUG",SG_RPC="http://localhost:9011/RPC2",SG_LOG_FILE=
              "supervisor_gateway.log",SG_HOST="localhost",SG_PORT="1234"
stderr_logfile = supervisor_gateway.err.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 2
buffer_size = 1024

some supported environments blow:

  • SG_HOST: listen host
  • SG_PORT: listen port
  • SG_RPC: supervisord rpc url
  • SG_LOG_LEVEL: log level
  • SG_LOG_FILE: log file

update supervisor conf

supervisorctl update supervisor_gateway

check it

curl  http://localhost:1234/rpc/state  

interact with api document in the browser http://localhost:1234/docs

TODO

  • Add unit test
  • Add more API
  • Add API documents

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgments