Skip to main content

superhooks plugin for supervisord

Project description

Superhooks

Superhooks is a supervisor "event listener" that sends events from processes that run under supervisor to predefined web hooks. When superhooks receives an event, it sends a message notification to a configured URL.

superhooks uses requests full-featured Python http requests library.

Installation

pip install superhooks

Command-Line Syntax

$ superhooks  -u http://localhost:8090/ -e STARTING,RUNNING,BACKOFF,STOPPING,FATAL,EXITED,STOPPED,UNKNOWN -d "a^b^^c^d" -H "p^q^^r^s" 

Options

-u URL, --url=http://localhost:8090/

Post the payload to the url with http POST

-d DATA, --data=a^b^^c^d post body data as key value pair items are separated by ^^ and key and values are separated by ^

-H HEADERS, --headers=p^q^^r^s request headers with as key value pair items are separated by ^^ and key and values are separated by ^

-e EVENTS, --event=EVENTS

The Supervisor Process State event(s) to listen for. It can be any, one of, or all of STARTING, RUNNING, BACKOFF, STOPPING, EXITED, STOPPED, UNKNOWN.

Configuration

An [eventlistener:x] section must be placed in supervisord.conf in order for superhooks to do its work. See the “Events” chapter in the Supervisor manual for more information about event listeners.

The following example assume that superhooks is on your system PATH.

[eventlistener:superhooks]
command=python /usr/local/bin/superhooks -u http://localhost:8090/ -e BACKOFF,FATAL,EXITED,UNKNOWN -d "a^b^^c^d" -H "p^q^^r^s"
events=PROCESS_STATE,TICK_60

The above configuration will produce following payload for an crashing process named envoy

POST / HTTP/1.1
Host: localhost:8090
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 177
Content-Type: application/x-www-form-urlencoded
P: q
R: s
User-Agent: python-requests/2.12.1

from_state=RUNNING&a=b&c=d&event_name=PROCESS_STATE_EXITED&process_name=cat%3Ameow&pheaders_all=from_state%3ARUNNING+processname%3Ameow+pid%3A25232+expected%3A0+groupname%3Acat+

Notes

  • All the events will be buffered for 1 min and pushed to web hooks.

Development

  • Modify the changes.
  • Execute python setup.py publish

0.5 (2019-06-2)

  • Sending the complete supervisor data under the key name pheaders_all

0.4 (2019-05-11)

  • Switched from semicolon(;) to cap(^) as separator

0.2 (2019-05-11)

  • Fixed Readme

0.1 (2019-05-11)

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for superhooks, version 0.6
Filename, size File type Python version Upload date Hashes
Filename, size superhooks-0.6-py3-none-any.whl (6.0 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page