{ "info": { "author": "Nikolai Abrosimov", "author_email": "nikolay.abrosimoff@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# aio_tiny_healthcheck\n[![PyPI](https://img.shields.io/pypi/v/aio_tiny_healthcheck.svg)](https://github.com/nabrosimoff/aio_tiny_healthcheck)\n[![Build Status](https://travis-ci.org/nabrosimoff/aio_tiny_healthcheck.svg?branch=master)](https://travis-ci.org/nabrosimoff/aio_tiny_healthcheck)\n[![Build Status](https://travis-ci.org/nabrosimoff/aio_tiny_healthcheck.svg?branch=develop)](https://travis-ci.org/nabrosimoff/aio_tiny_healthcheck)\n\nTiny asynchronous implementation of healthcheck provider and server\n\n# Installation\n\n```bash\npip install aio-tiny-healthcheck\n```\n\n# Usage\nBy default, the Checker returns 200 if all checks successfully finish or 500 in opposite case.\n\n## Using with aiohttp\n```python\nfrom aiohttp import web\n\nfrom aio_tiny_healthcheck.checker import Checker\n\ndef some_sync_check():\n return True\n\nasync def some_async_check():\n return False\n\nhealthcheck_provider = Checker()\nhealthcheck_provider.add_check('sync_check_true', some_async_check)\nhealthcheck_provider.add_check('async_check_false', some_async_check)\n\n\napp = web.Application()\napp.router.add_get('/healthcheck', healthcheck_provider.aiohttp_handler)\nweb.run_app(app)\n```\n\n## Using with Sanic\n```python\nfrom sanic import Sanic\nfrom sanic.response import json\nfrom aio_tiny_healthcheck.checker import Checker\n\napp = Sanic()\n\ndef some_sync_check():\n return True\n\nasync def some_async_check():\n return False\n\nhealthcheck_provider = Checker(success_code=201, fail_code=400)\nhealthcheck_provider.add_check('sync_check_true', some_async_check)\nhealthcheck_provider.add_check('async_check_false', some_async_check)\n\n@app.route(\"/healthcheck\")\nasync def test(request):\n hc_response = healthcheck_provider.check_handler()\n return json(hc_response.body, status=hc_response.code)\n\nif __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000)\n```\n\n## Using in concurrent mode\nYou should want to run healthcheck in background if you already have some blocking operation in your execution flow.\nSo, you can just use built-in server for this.\n\n```python \nfrom aio_tiny_healthcheck.checker import Checker\nfrom aio_tiny_healthcheck.http_server import HttpServer\nimport asyncio\n\n\nasync def some_long_task():\n await asyncio.sleep(3600)\n\n\ndef some_sync_check():\n return True\n\n\nasync def some_async_check():\n return True\n\n\naio_thc = Checker()\nhc_server = HttpServer(\n aio_thc,\n path='/health',\n host='localhost',\n port=9090\n)\n\naio_thc.add_check('sync_check_true', some_async_check)\naio_thc.add_check('async_check_false', some_async_check)\n\n\nasync def main():\n # Run healthcheck concurrently\n asyncio.create_task(hc_server.run())\n\n # Run long task\n await some_long_task()\n\n\nif __name__ == '__main__':\n loop = asyncio.get_event_loop()\n loop.run_until_complete(main())\n\n```\n\n## Utility for health checking\n\n```\npython -m aio_tiny_healthcheck http://localhost:9192/healthcheck\n```\n\nUseful for running health check without external dependencies like curl.\n\nBy default, concurrent server and health checking utility are working\nwith a port and query path `http://localhost:8000/healthcheck`.\nSo, if you run concurrent server with no using arguments, you can also run the utility\nwith without arguments `python -m aio_tiny_healthcheck`.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nabrosimoff/aio_tiny_healthcheck", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aio-tiny-healthcheck", "package_url": "https://pypi.org/project/aio-tiny-healthcheck/", "platform": "", "project_url": "https://pypi.org/project/aio-tiny-healthcheck/", "project_urls": { "Homepage": "https://github.com/nabrosimoff/aio_tiny_healthcheck" }, "release_url": "https://pypi.org/project/aio-tiny-healthcheck/1.1.2/", "requires_dist": null, "requires_python": "", "summary": "Tiny asynchronous implementation of healthcheck provider and http-server", "version": "1.1.2" }, "last_serial": 5613552, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "41de6f24e8b2173d23510dad050bf9ba", "sha256": "6a6de0434614acfbd7ef8a799f2adefd6aac55e62cf824cf3303a8dc62bef86e" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "41de6f24e8b2173d23510dad050bf9ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8791, "upload_time": "2019-07-21T16:23:58", "url": "https://files.pythonhosted.org/packages/f8/d8/fb19329b0d5d5b62413a4b06289a510b2f4706230df6e62fc85d54abe7f1/aio_tiny_healthcheck-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77158b50a6e28baa9dd9615ef2b5d133", "sha256": "f949da07ebed2700f5d4ca4b748b4d50518650dd1424d0b6923d7cc2c236c9a5" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.0.tar.gz", "has_sig": false, "md5_digest": "77158b50a6e28baa9dd9615ef2b5d133", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3633, "upload_time": "2019-07-21T16:24:00", "url": "https://files.pythonhosted.org/packages/a5/d4/dd1f2e1893b030c321387c614747ce9579186002a273ca623cf2c0e5d121/aio_tiny_healthcheck-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "03990d425c2c49491d15db7b9c8a7f5c", "sha256": "4c65b99af6e7ffa5fad4ccb24231ed1746369948c418121ed5320ed287d04d8f" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "03990d425c2c49491d15db7b9c8a7f5c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8849, "upload_time": "2019-07-21T19:16:01", "url": "https://files.pythonhosted.org/packages/bc/cd/01d27d5edc37f79616206b5167fb3cf659384d60432ae2cfa082e65cd042/aio_tiny_healthcheck-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7d0f443ac34d762af00f33e37d86f18", "sha256": "9cf5ffdd2b476ac0d2d6376fd106065e52b89d02bb90db27979b2e5391f03d9b" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b7d0f443ac34d762af00f33e37d86f18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3693, "upload_time": "2019-07-21T19:16:03", "url": "https://files.pythonhosted.org/packages/35/46/2e6eaeeb0b7b18bbb3d1ae232fc6d265c67cf34c97c13874ab824b6886c8/aio_tiny_healthcheck-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ea3fe332d7391bc708e03e9dfdb93794", "sha256": "d87389e84c8dbcb15eee889e52f3f8c0fa62e75ba78b8e670ac029a362b7ed80" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ea3fe332d7391bc708e03e9dfdb93794", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8970, "upload_time": "2019-07-21T21:06:23", "url": "https://files.pythonhosted.org/packages/9c/da/581a5cf754fe3096d19d8602397d05f300323dcc1a0ba9859b98315776e3/aio_tiny_healthcheck-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7e47f2301b2d6aac8c5c2478b9493a5", "sha256": "d3da997fc97b71cb06d8c09a5da26c08c6cc81e771fdf84f8511638e4200557c" }, "downloads": -1, "filename": "aio_tiny_healthcheck-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e7e47f2301b2d6aac8c5c2478b9493a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7964, "upload_time": "2019-07-21T21:06:24", "url": "https://files.pythonhosted.org/packages/19/34/c909b95afab95663edc9e6337f4786ecf83fb0bbb1ffc547eb14968a7cc8/aio_tiny_healthcheck-0.1.3.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e7c41d0cb517046794ff624ca21a4ee8", "sha256": "8a6c2805913a037c1b2da9c06626e2962a6e7bb0f06ab570b90d94f4b4fadb4c" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e7c41d0cb517046794ff624ca21a4ee8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11082, "upload_time": "2019-07-22T08:13:29", "url": "https://files.pythonhosted.org/packages/8f/58/c30f44b8ff4e6848cd55222f3e9506c49802adfb50b01d17f57c753d240d/aio_tiny_healthcheck-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec8df52e5a1e017ada51b371b00918dd", "sha256": "87c217514a95de9d797cb25d58b1d7fe2776b1ae4403a6732b60f81d604aeb57" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ec8df52e5a1e017ada51b371b00918dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7832, "upload_time": "2019-07-22T08:13:30", "url": "https://files.pythonhosted.org/packages/73/66/ef0b978ba722b26994d112137dd8a54c08af26acdcb125584871d0524cbc/aio_tiny_healthcheck-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "edc662af00b1aa530d398650e1178311", "sha256": "1b431658bcada6ba09d9604a241969f727194d6344f1805e67923739e67f6dc9" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "edc662af00b1aa530d398650e1178311", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11838, "upload_time": "2019-07-24T09:04:13", "url": "https://files.pythonhosted.org/packages/8d/44/b842fa0865377e83651741f5ee2912f726ca924e23ab19293e22738aba66/aio_tiny_healthcheck-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5e3e520743245c9c206eb2005beefde", "sha256": "b7c246697919c21589023f10569a28818b4a800d6d5ea7386c935161375a30d4" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a5e3e520743245c9c206eb2005beefde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8445, "upload_time": "2019-07-24T09:04:15", "url": "https://files.pythonhosted.org/packages/1d/6d/d6d501ca21d607a57f7b10cfc260c69ba324bb81a2a6a5c624350dbd11ee/aio_tiny_healthcheck-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "1722a2718d4f02daf2052636cf060af1", "sha256": "9fa55e57d961ab5c008408358ac90651c0f9443f44511196205f4b79842481e9" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1722a2718d4f02daf2052636cf060af1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11879, "upload_time": "2019-07-30T13:23:08", "url": "https://files.pythonhosted.org/packages/5a/3a/73e3bd022daece971c83025957519107d22e6245b1fe2de9397d0279a287/aio_tiny_healthcheck-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d9ee5dee968e974a0939dd940a27ea9", "sha256": "33f017aa56831c3f8c974d9e6ac5cc42e95ca5618ab7b8e811d22ebcb80b321c" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.1.tar.gz", "has_sig": false, "md5_digest": "7d9ee5dee968e974a0939dd940a27ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8477, "upload_time": "2019-07-30T13:23:09", "url": "https://files.pythonhosted.org/packages/e0/29/8ba9e12bff1b71c70b5417fa4491c271ac3efbe14570d85aae307131d388/aio_tiny_healthcheck-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "d14f5f0f8e1f8a0f9f3d8c3ccce950fa", "sha256": "ef5fbff45611fbcae9bf44900a37f6a1ca98e087e94fcaaf9a5b689f02a94ecf" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d14f5f0f8e1f8a0f9f3d8c3ccce950fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12248, "upload_time": "2019-07-31T13:54:04", "url": "https://files.pythonhosted.org/packages/73/e0/93a677cef10c36e6e11b0926af7011c7af30f4baa4664b1d9829999e64d6/aio_tiny_healthcheck-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02b55c06a5e80826012f19b9313d5638", "sha256": "6cdd90bf24b6a0fd30ba4884256046be5bea914c9b0dc6dca2ba1007beccf139" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.2.tar.gz", "has_sig": false, "md5_digest": "02b55c06a5e80826012f19b9313d5638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8819, "upload_time": "2019-07-31T13:54:06", "url": "https://files.pythonhosted.org/packages/01/a6/b58735ef01f8a30f52ce5146c9b185c08a52706b373c8074dcb601053d97/aio_tiny_healthcheck-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d14f5f0f8e1f8a0f9f3d8c3ccce950fa", "sha256": "ef5fbff45611fbcae9bf44900a37f6a1ca98e087e94fcaaf9a5b689f02a94ecf" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d14f5f0f8e1f8a0f9f3d8c3ccce950fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12248, "upload_time": "2019-07-31T13:54:04", "url": "https://files.pythonhosted.org/packages/73/e0/93a677cef10c36e6e11b0926af7011c7af30f4baa4664b1d9829999e64d6/aio_tiny_healthcheck-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02b55c06a5e80826012f19b9313d5638", "sha256": "6cdd90bf24b6a0fd30ba4884256046be5bea914c9b0dc6dca2ba1007beccf139" }, "downloads": -1, "filename": "aio_tiny_healthcheck-1.1.2.tar.gz", "has_sig": false, "md5_digest": "02b55c06a5e80826012f19b9313d5638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8819, "upload_time": "2019-07-31T13:54:06", "url": "https://files.pythonhosted.org/packages/01/a6/b58735ef01f8a30f52ce5146c9b185c08a52706b373c8074dcb601053d97/aio_tiny_healthcheck-1.1.2.tar.gz" } ] }