Check health of static, long running applications using generated files.
Project description
file-healthchecker
Use this application to monitor your long running "non-web" application's health check.
Installation
pip
pip install file-healthchecker
Use Case
Lets say we have a service which needs to perform some action every x-duration. In python-world we would simply run it inside a while loop and invoke it every x-minutes.
Now define an environment var ENV_HEALTH_CHECK_FILE
which will represent a file creation
in case the app is healthy. for e.g. export ENV_HEALTH_CHECK_FILE=/tmp/myapp.is.healthy
This following snippet will perform following tasks:
- Every invocation of my_application will first remove a health-check file.
- Run the application
- NOTE: Raise an exception in case the application is failing. Handle it outside, as show in the given example.
- If no exception is raised, the decorator will create a file defined by the env-var
ENV_HEALTH_CHECK_FILE
from file_healthchecker import decorator_success
import time
@decorator_success
def my_application():
... doing lots of work
... more work
# in case of failure, raise exception
return True
if __name__ == "__main__":
while True:
try:
my_application()
except Exception:
pass
time.sleep(10)
With the installation another cmd-app also gets installed - checkhealth
.
How to check application's health?
- One can simply run
ENV_HEALTH_CHECK_FILE=/tmp/myapp.is.healthy checkhealth
at regular intervals or - pass this command to orchestrators like
Nomad
,Kubernetes
, etc. as a part of their health-check commands.
Current Stable Version
0.1.0
Development Installation
- Clone the project.
- Now install the application in editable mode and you are ready to start development
$ pip install -e .
Test
To run the tests:
make test
License
MIT
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 file_healthchecker-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8363787ea10b7e71990e25261ec52cfc4275580f7b9400ca33810a324d10e961 |
|
MD5 | 935ec8b6f67a8d687972dfaf3606a149 |
|
BLAKE2b-256 | 282cfc3e7690563075c1f96cbec49db4fc14481eb99551f17d98e78ddca5a8e2 |