Health Check API for multi-thread python apps
Project description
A Health Check API Library for Multi Thread Python Apps
This library adds a health check REST API to your multithread apps.
You can add decorators to your periodic running functions and library will track
the function calls. This library supports multiprocessing
threads.
You can fetch a single overall app status by fetching
http://<ip>:<port>/health
or detailed statuses of all service with fetching
http://<ip>:<port>/health?v
Usage
Set PY_HEALTH_CHECK_HOST
and PY_HEALTH_CHECK_PORT
environment variable and add the appropriate decorator
to your periodic functions or class methods
def run_continuously():
while continue_running:
run_once()
time.sleep(1)
@healthcheck_python.periodic(service="my_service1", timeout=10)
def run_once():
do_something()
class MyProcess(mp.Process):
def run(self):
while self.continue_running:
self.do_the_thing_once()
time.sleep(1)
@healthcheck_python.periodic(service="MyProcessService", timeout=5)
def do_the_thing_once(self):
self.do_something()
With these wrappers, run_once()
has to called every 10 seconds and MyProcess.do_the_thing_once()
has to be called every 5 seconds. If at least one fails, the app status will be down.
$ curl http://localhost:8080/health
{"status": true}
$ curl http://localhost:8080/health?v
{"status": true, "services": {"my_service1": {"latest_start": 1611137135.3203568, "latest_end": 1611137135.3203998, "timeout": 10},"MyProcessService": {"latest_start": 1611137135.3203568, "latest_end": 1611137135.3203998, "timeout": 5}}}
TODO
- Unit tests
- Support different types of checks
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for healthcheck_python-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0c3e8045a76da300fbc16421606d9e4b443cb288969d62ee5acbef492f09816 |
|
MD5 | d0447092eccc61910b7731f36d2f933a |
|
BLAKE2b-256 | 46a5683e9e838cd18d25867d8dc340eba1c0c31fa5c011b11b3d7c8144ca8daf |