{ "info": { "author": "Tobias Gawron-Deutsch", "author_email": "tobias@strix.at", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: No Input/Output (Daemon)", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Home Automation", "Topic :: Utilities" ], "description": "Hippodamia observe the state of all registered microservices (aka watch\ndog).\n\n.. figure:: img/Microservice%20Overview.png\n :alt: Pelops Overview\n\n Pelops Overview\n\n``Hippodamia`` is part of the collection of mqtt based microservices\n`pelops `__. An overview on the microservice\narchitecture and examples can be found at\n(http://gitlab.com/pelops/pelops).\n\nfor Developers\n==============\n\nStates of a Microservice\n------------------------\n\n.. figure:: img/microservice_states.png\n :alt: AState Diagram\n\n AState Diagram\n\n- *initialize phase* - an onboarding request has been received by the\n system. if the source has been identified as a known microservice,\n the existing state will be used, a new one will be initialized.\n- *onboarding* - a microserivce has been identified/initialized and the\n system waits for it to react to the onboarding request response.\n- *active* - the observed microservice has been successfully onboarded\n and sends state updates regularly.\n- *inactive* - the microservice has not sent any update for a\n predefined period.\n- *terminated* - the microservice has either send a good-by-message or\n been inactive for to long.\n- *end state* - the system has terminated observation of this\n microservice.\n\nStates of the Corresponding Agent\n---------------------------------\n\n|AgentState\\_Diagram| \\* *uninitialized* - agent has just started or a\nrestart has been forced. on entry of this state a new uuid will be\ngenerated. \\* *initizalized* - agent is ready to start onboarding\nprocedure. \\* *onboading* - agent has sent an onboarding request and is\nwaiting for an reply \\* *active* - agent is constantly sending ping,\nruntime, and config messages \\* *terminating* - agent sends an\ntermination message to the service before shutdown\n\nTopics\n------\n\nsee `AsyncAPI `__.\n\nIncoming\n~~~~~~~~\n\n- *contact* - for onboarding/offboarding requests\n- *state.ping* - listens for new ping messages\n- *state.runtime* - listens for new runtime messages\n- *state.config* - listens for new config messages\n- *state.end* - listens for termination messages ### Outgoing\n- *uuid* - individual topic opened by each microservice for the\n onboarding process\n- *command.ping* - request ping messages\n- *command.runtime* - request runtime messages\n- *command.config* - request config messages\n- *command.onboarding* - request re-onboarding\n\nMessages\n--------\n\nsee `AsyncAPI `__.\n\nIncoming\n~~~~~~~~\n\n- *onboarding request* - onboarding request from a microservice\n- *ping* - minimum \"sign of life\" of a microservice\n- *runtime info* - ping plus additional runtime information\n- *config state* - ping plus service configuration\n- *termination info* - end service signal. sent either upon stop of\n service or as last will via mqtt server.\n\nOutgoing\n~~~~~~~~\n\n- *onboarding response* - onboarding response sent by hippodamia to the\n microservice via the provide onboarding topic from the microservice\n- *re-onboard request* - request plus optionally gid\n- *request ping* - request plus optionally gid\n- *request runtime info* - request plus optionally gid\n- *request full state* - request plus optionally gid\n\nOnboarding Sequence\n~~~~~~~~~~~~~~~~~~~\n\n.. figure:: img/onboarding.png\n :alt: Sequence\n\n Sequence\n\nFirst, the microservice subscribes to a unique topic. This topic is sent\ntogether with additional information to identify the microservice\n(especially to look if this microservices has been onboarded previously)\nto hippodamias onboarding channel. Hippodamia answers with the\nonboarding response message which primarily contains the gid - the\nidentifier of this particular microservice instance that ideally should\nbe the same even after the n-th onboarding cycle. The repsonse message\nis published to the unique topic from the microservice. Once the\nmicroservice has received its gid, the uniqued topic can be unsubscribed\nand the reqular topics will be used for further communication.\n\nPing Sequence\n~~~~~~~~~~~~~\n\n.. figure:: img/ping.png\n :alt: Ping\n\n Ping\n\nPing messages are normally sent by the microservice at arbitrary times.\nUsually a sent interval of e.g. 60 seconds is implemented. The other\npossibility is that hippodamia requests a ping message from all\nonboarded microservices. The same sequence applies to runtime, config\nand onboarding.\n\nDatabase\n--------\n\nHippodamia stores all info immediately into the database. \\*\nMicroservice state \\* Received messages\n\n.. |AgentState\\_Diagram| image:: ../hippodamia-agent/img/agent_states.png\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/pelops/hippodamia/", "keywords": "mqtt microservice monitoring service", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "Hippodamia", "package_url": "https://pypi.org/project/Hippodamia/", "platform": "", "project_url": "https://pypi.org/project/Hippodamia/", "project_urls": { "Homepage": "https://gitlab.com/pelops/hippodamia/" }, "release_url": "https://pypi.org/project/Hippodamia/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "Hippodamia observe the state of all registered microservices (aka watch dog).", "version": "0.4.1" }, "last_serial": 5257086, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7c8ca2e26841ca468d92a2ef8a05a205", "sha256": "e36a6ac987d57f39bfd049be7f6745e799ba5c93b23c3c648f55794ffcaccf33" }, "downloads": -1, "filename": "Hippodamia-0.1.tar.gz", "has_sig": false, "md5_digest": "7c8ca2e26841ca468d92a2ef8a05a205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20179, "upload_time": "2019-02-15T20:42:46", "url": "https://files.pythonhosted.org/packages/55/54/47541e8faa6123af188f9b7e26ebf61657bf0c7a14bf3810e47ff07c0e1a/Hippodamia-0.1.tar.gz" } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "ea1c881fe4e48f96fafc0c3fff8ef6ee", "sha256": "121b5583cd77d73f301fcbfd9d25af76a209f15f47567eef2945d3fc1247cb6b" }, "downloads": -1, "filename": "Hippodamia-0.1a0.tar.gz", "has_sig": false, "md5_digest": "ea1c881fe4e48f96fafc0c3fff8ef6ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1486, "upload_time": "2018-05-20T21:03:00", "url": "https://files.pythonhosted.org/packages/86/b3/a164b19e73c815655270922964ac74958f99366cbf5591198c38f4447d38/Hippodamia-0.1a0.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "013e2b874795117c7e87ac3e58657887", "sha256": "b63dcbd932e91514f0facbba8f37f9d701c33933b5c4ef8b3b9cd26e17211153" }, "downloads": -1, "filename": "Hippodamia-0.1a1.tar.gz", "has_sig": false, "md5_digest": "013e2b874795117c7e87ac3e58657887", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1701, "upload_time": "2018-08-08T21:07:46", "url": "https://files.pythonhosted.org/packages/62/a4/fd1b99c7056a06165f9e56314ff8850201c7e1e0a11b864da2925fe9b442/Hippodamia-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "9df733f9e6801f49fb88b021297637c8", "sha256": "faf637e596ef456b448bcd0fb459445c4e9159b3913f2c359246c08af305aacb" }, "downloads": -1, "filename": "Hippodamia-0.1a2.tar.gz", "has_sig": false, "md5_digest": "9df733f9e6801f49fb88b021297637c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7070, "upload_time": "2018-11-24T10:43:31", "url": "https://files.pythonhosted.org/packages/35/d9/65b2bd8424ef456d1f31cb6cd27320b3515dab95a75dd3734edf5adcc5eb/Hippodamia-0.1a2.tar.gz" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "8c8f453ec426ab75abe9087b08ff1f0d", "sha256": "4c65ba5c6299efd4d29ab449e301bc267d0d66dbbb3296e381d62d224718df35" }, "downloads": -1, "filename": "Hippodamia-0.1a3.tar.gz", "has_sig": false, "md5_digest": "8c8f453ec426ab75abe9087b08ff1f0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20180, "upload_time": "2019-02-15T20:42:25", "url": "https://files.pythonhosted.org/packages/33/5b/3c244428a15a10a49766a7045320378e9e457e1935efb8205a77df733af9/Hippodamia-0.1a3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "530792fd3dd6f0d67578899656a31832", "sha256": "86c09df7c753c755733030e0cf17d5b682d36bf8d369eac6861f2e9e04c9394e" }, "downloads": -1, "filename": "Hippodamia-0.2.tar.gz", "has_sig": false, "md5_digest": "530792fd3dd6f0d67578899656a31832", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21200, "upload_time": "2019-03-09T16:00:01", "url": "https://files.pythonhosted.org/packages/a7/17/974b2673516c4e1d6e3af8ace4b1dedfad6544c1c45cc31fe34c4d28c8d5/Hippodamia-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "39e15cc33136bd6889727b0b10691373", "sha256": "e7875cfd254a09e82d210da07903df6fd0ed19c6f5a9ade793432c091491dbe7" }, "downloads": -1, "filename": "Hippodamia-0.2.1.tar.gz", "has_sig": false, "md5_digest": "39e15cc33136bd6889727b0b10691373", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21299, "upload_time": "2019-03-09T22:14:32", "url": "https://files.pythonhosted.org/packages/92/f6/9e4b309f0065cd8249168f81f1ae930be884612cec104b047b1c508ca67c/Hippodamia-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e6e7f6e04dd149657cf933e09bca94f3", "sha256": "a46d70777a6765b96121f5ee218c9ba43953238c3c24baa403584fa691767623" }, "downloads": -1, "filename": "Hippodamia-0.2.2.tar.gz", "has_sig": false, "md5_digest": "e6e7f6e04dd149657cf933e09bca94f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21309, "upload_time": "2019-03-11T21:39:30", "url": "https://files.pythonhosted.org/packages/a8/79/6f7526166002f895fcee4a5ba662a8e0fb4bbc83353f6788d66ce8110711/Hippodamia-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f0776fa8a610d462c3e5fc868f7ee077", "sha256": "f6e181ba7555b62260a002afbe27f57bb4df45b52fb28ffbe63cb43bc5bbcfee" }, "downloads": -1, "filename": "Hippodamia-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f0776fa8a610d462c3e5fc868f7ee077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21501, "upload_time": "2019-03-16T21:12:23", "url": "https://files.pythonhosted.org/packages/95/1b/6320cbfa6ee64fb1db8093a1c30e7e37a4240036397aeda32f2a7e5e3227/Hippodamia-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8a5e0f8c70cf1ccfa27ff19ccfd5f671", "sha256": "4d6e36b95d8392467561c6eec624384509fbdc6d4cff4b37df1883a2bb400c29" }, "downloads": -1, "filename": "Hippodamia-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8a5e0f8c70cf1ccfa27ff19ccfd5f671", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24323, "upload_time": "2019-03-25T21:30:59", "url": "https://files.pythonhosted.org/packages/6e/e8/8a5b0559ab1a29d5798e2c9cc6562169a9072dc33cb737e007c99d1b6db3/Hippodamia-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "38d7765e4386f1a61d4edd6e2e44523a", "sha256": "8aca8c32ad33ec3c81180ae5f287b8ceb4490e804ca33b73e84efc0b7c231ade" }, "downloads": -1, "filename": "Hippodamia-0.4.0.tar.gz", "has_sig": false, "md5_digest": "38d7765e4386f1a61d4edd6e2e44523a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38916, "upload_time": "2019-05-09T22:39:11", "url": "https://files.pythonhosted.org/packages/c8/c4/4bbec58c69d820cea724fb087b45da2dae351a55fda5e2755d9c8eb3de67/Hippodamia-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e5bea7cac7168c3260441bf3e5bf4910", "sha256": "1af2db6d07cf1f7ec34bbfcf6420b396d9d37318f433b91fbcbb009a85cb0c68" }, "downloads": -1, "filename": "Hippodamia-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e5bea7cac7168c3260441bf3e5bf4910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39165, "upload_time": "2019-05-11T19:42:46", "url": "https://files.pythonhosted.org/packages/64/dc/270e9342633fda9adceeca257bd7f6b26b88e8b4092fc6302217c6ca3d07/Hippodamia-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e5bea7cac7168c3260441bf3e5bf4910", "sha256": "1af2db6d07cf1f7ec34bbfcf6420b396d9d37318f433b91fbcbb009a85cb0c68" }, "downloads": -1, "filename": "Hippodamia-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e5bea7cac7168c3260441bf3e5bf4910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39165, "upload_time": "2019-05-11T19:42:46", "url": "https://files.pythonhosted.org/packages/64/dc/270e9342633fda9adceeca257bd7f6b26b88e8b4092fc6302217c6ca3d07/Hippodamia-0.4.1.tar.gz" } ] }