A compact asynchronous healthcheck using only the standard library
Project description
async-healthcheck
async-healthcheck
is a compact asynchronous health check library built using only the Python standard library. It provides a simple way to monitor the health of your application by checking the status of various synchronous and asynchronous functions.
Installation
You can install async-healthcheck
directly from PyPI:
pip install async-healthcheck
Usage
Here is a basic usage example:
from async_healthcheck import start_healthcheck
def sync_check():
# Perform some synchronous health check (e.g., check database connection)
return True
async def async_check():
# Perform some asynchronous health check (e.g., check API availability)
return True
async def main():
server = await start_healthcheck(
sync_callables=[sync_check],
async_callables=[async_check],
host="127.0.0.1",
path="/healthcheck",
port=8000,
)
# The server is now running and can be accessed at http://127.0.0.1:8000/healthcheck
if __name__ == "__main__":
import asyncio
asyncio.run(main())
In this example, start_healthcheck
starts a health check server that runs the provided synchronous and asynchronous checks when a GET request is made to the specified path (default is /healthcheck
). If all checks pass, it returns a 200 status code; if any check fails, it returns a 500 status code.
Testing
Tests are located in the tests
directory and can be run using the standard Python unittest module:
PYTHONPATH="async_healthcheck" poetry run python -m unittest discover -s tests
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
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 async_healthcheck-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb3610834b26ab86c7a7fcd63035f42f2734da339513b3b90bd7471eb172f21 |
|
MD5 | b060f2e5554705761fc23cc86bb0565c |
|
BLAKE2b-256 | 76fc1ac2dbfa9239f6048f18b9ba0e952b73a59aeaa7220fc9a8c3d52183292e |