• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Featured
    • C# Tutorials
      • LinQ Tutorials
      • Facebook C# API Tutorials
    • PHP Tutorials
      • CodeIgniter Tutorials
    • Amazon AWS Tutorials
  • Categories
    • Programming
    • Development
    • Database
    • Web Server
    • Source Control
    • Management
    • Project
  • About
  • Write
  • Contact

CodeSamplez.com

Programming, Web development, Cloud Technologies

You are here: Home / Management / Using Supervisord Web Interface And Plugin

Using Supervisord Web Interface And Plugin

July 8, 2014 by Rana Ahsan Leave a Comment

Supervisord web

In my last article where I tried to give an introduction and basic usage of supervisord process monitoring, I figured that there are two missing features there which someone should know about/be aware of. Which are, interacting with supervisord web interface and using a plugin with supervisord.

So, today, In this small article, I will try to cover these two to make your supervisord experience easier/better. Let’s start with the built-in web interface.

Supervisord Web Interface:

To access the basic web interface, edit the supervisord configuration file(located at /etc/supervisord.conf) in the following section:

[inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server))
Code language: JavaScript (javascript)

You have to comment out the first two-line to get it working. After that, run the supervisord in no daemon mode(with -n param) and you should be able to see something like the below in the console log:

2014-07-08 05:25:40,558 CRIT Server 'inet_http_server' running without any HTTP authentication checking
Code language: JavaScript (javascript)

Which means that it started properly. Now, test the web interface at http://127.0.0.1:9001 URL, which will look something like the below:

Supervisord-basic-interface

As you can see on the screenshot, you can start/stop/restart, see status, log etc right from your browser. Pretty cool! Isn’t it?

Third-Party Web Interface:

There are some available third-party web interfaces available which might be helpful to integrate into a web application. You can find details about them on supervisord third-party libraries page. Besides easy integration with a web application, some of them also facilitate monitoring more than one server from a single web interface, which is useful in many cases.

Using Plugin:

To use a plugin for additional functionality to our existing supervisord installation, it can be easily configurable via the same configuration file.

A very useful package is superlance. It is a plugin that includes a few very useful plugins for supervisord. I will show you one example configuration for the ‘memmon’ plugin here. ‘Memmon’ is a plugin that monitors the memory used by the processes and can restart the processes as soon as they go beyond the given boundary size.

After having “superlance” on system, edit the configuration file as below for the “memmon” plugin:

[eventlistener:memmon] command=memmon -p my-bg-tasks=170MB -m yourname@domain.com events=TICK_60

The above configuration will cause “memmon” to monitor memory usage over 170MB and restart it goes beyond that. It also attaches an event to send a signal every 60 seconds. Now, if the configuration is OK, after starting the supervisord again, with no daemon mode(with -n param), you should see something similar to the following line on the std log:

2014-07-08 05:25:41,564 INFO spawned: 'memmon' with pid 1600
Code language: JavaScript (javascript)

To test this, try to keep the memory allowance low and feed your worker process with large data; you should eventually see that the worker restarted with a separate process id.

Final Words:

So, I hope this article will be helpful to you to some extent. You are most welcome to question/ provide feedback/suggestions via comments. Keep in touch!

Share If Liked

  • Click to share on Facebook (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to share on Pinterest (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on Tumblr (Opens in new window)
  • Click to share on Pocket (Opens in new window)

You may also like

Filed Under: Management Tagged With: process, server, utility

About Rana Ahsan

Rana is a passionate software engineer/Technology Enthusiast.
Github: ranacseruet

Reader Interactions

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 3,774 other subscribers

Follow Us

  • Twitter
  • Facebook

Top Posts & Pages

  • How To Work With JSON In Node.js / JavaScript
    How To Work With JSON In Node.js / JavaScript
  • PHP HTML5 Video Streaming Tutorial
    PHP HTML5 Video Streaming Tutorial
  • LinQ Query With Like Operator
    LinQ Query With Like Operator
  • How To Work With C# Serial Port Communication
    How To Work With C# Serial Port Communication
  • Getting Started With Smarty Template Engine
    Getting Started With Smarty Template Engine
  • Using Supervisord Web Interface And Plugin
    Using Supervisord Web Interface And Plugin
  • Generate HTTP Requests using c#
    Generate HTTP Requests using c#
  • Facebook C# API Tutorials
    Facebook C# API Tutorials
  • Utilizing Config File In C#.NET Application
    Utilizing Config File In C#.NET Application
  • LinQ To SQL Database Update Operations In C#
    LinQ To SQL Database Update Operations In C#

Recent Posts

  • Building Auth With JWT – Part 2
  • Building Auth With JWT – Part 1
  • Document Your REST API Like A Pro
  • Understanding Golang Error Handling
  • Web Application Case Studies You Must Read

Tags

.net angularjs apache api audio auth authenticatin aws c# cloud server codeigniter deployment docker doctrine facebook git github golang htaccess html5 http javascript jwt linq mysql nodejs oop performance php phpmyadmin plugin process python regular expression scalability server smarty socket.io tfs tips unit-test utility web application wordpress wpf

Footer

Archives

Follow Us

  • Twitter
  • Facebook

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 3,774 other subscribers

Copyright © 2023