{ "info": { "author": "Aaron Spaulding", "author_email": "aaron@sachimp.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Topic :: Internet :: WWW/HTTP", "Topic :: Office/Business" ], "description": "Up - A next generation status monitor\r\n=====================================\r\n\r\nSometimes you just need to know, is it up? The goal of this project is to create an easy to use, but highly customizable status monitor.\r\n\r\nSetup\r\n-----\r\n\r\nFirst start by installing the environment.\r\n\r\n.. code-block:: bash\r\n\r\n $ mkdir example-status\r\n\r\n $ cd example-status\r\n\r\n $ virtualenv . -p python3 --no-site-packages\r\n\r\n $ bin/pip install up\r\n\r\nNow you need to create the `upfile.py`. It goes in the same folder as everything else. From here you can setup what you want to monitor.\r\n\r\n.. code-block:: python\r\n\r\n from up import status, source, sink\r\n\r\n class ExampleStatus(status.StatusMonitor):\r\n\r\n source = source.HTTPStatusSource('Example Status', 'https://example.com/')\r\n sink = sink.StdOutStatusSink()\r\n\r\nYou can now run it like this.\r\n\r\n.. code-block:: bash\r\n\r\n $ bin/up\r\n Example Status: UP\r\n\r\nMonitoring Multiple URL's\r\n~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nUp uses a \"tinker-toy\" pattern allowing you to combine sources to build whatever\r\nkind of monitor you need. A `StatusTreeSource` will let you combine multiple\r\nsources into one.\r\n\r\n.. code-block:: python\r\n\r\n from up import status, source, sink\r\n\r\n class ExampleStatus(status.StatusMonitor):\r\n\r\n # You can also try a ThreadedTreeSource which runs the monitors\r\n # in parallel.\r\n source = source.StatusTreeSource('Example Status', [\r\n source.HTTPStatusSource('PROD', 'https://example.com/'),\r\n source.HTTPStatusSource('QA', 'https://qa.example.com/')\r\n ])\r\n sink = sink.StdOutStatusSink()\r\n\r\nUp will query each of the sources and give you a simplified status.\r\n\r\n.. code-block:: bash\r\n\r\n $ bin/up\r\n Example Status: HALF UP\r\n\r\nFor more information use -v.\r\n\r\n.. code-block:: bash\r\n\r\n $ bin/up -v\r\n Example Status: HALF UP (50%)\r\n PROD: UP\r\n QA: DOWN\r\n\r\nChecking the status of GitHub\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nUp comes with a source that reads from GitHub's status API.\r\n\r\n.. code-block:: python\r\n\r\n from up import status, source, sink\r\n\r\n class ExampleStatus(status.StatusMonitor):\r\n\r\n source = source.GitHubStatusSource('GitHub Status')\r\n sink = sink.StdOutStatusSink()\r\n\r\n.. code-block:: bash\r\n\r\n $ bin/up -v\r\n GitHub Status: UP\r\n\r\n\r\nDevelopers Setup\r\n----------------\r\n\r\n.. code-block:: bash\r\n\r\n $ virtualenv . -p python3 --no-site-packages\r\n\r\n $ bin/python setup.py develop\r\n\r\nChangelog\r\n---------\r\n\r\n- **Next** Nothing Yet.\r\n- 0.2.1 - Fix templates and static resources missing from egg\r\n- 0.2.0 - Detect ConnectionError and set status to DOWN; Expose Web Interface; Experimental SNMP monitoring (will most likely change)\r\n- 0.1.0 - Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Ponginae/up/", "keywords": "", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "up", "package_url": "https://pypi.org/project/up/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/up/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Ponginae/up/" }, "release_url": "https://pypi.org/project/up/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Up - A next generation status monitor", "version": "0.2.1" }, "last_serial": 1129242, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d50b24b48bc66c5823341bc7b96234eb", "sha256": "635d7f591754616643ea41a5c449f38b7f42a748b46d6d74986521a432038daa" }, "downloads": -1, "filename": "up-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d50b24b48bc66c5823341bc7b96234eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4406, "upload_time": "2013-08-13T01:37:37", "url": "https://files.pythonhosted.org/packages/4c/90/19289b29732137c627708b09b644856c62b75376937b0988cd444af9a87c/up-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2e038d176a4854bf678b371bfd5891b8", "sha256": "744ba443f8344310142df9b5ed8954de5be5573114f176667465bab831bfef02" }, "downloads": -1, "filename": "up-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2e038d176a4854bf678b371bfd5891b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8437, "upload_time": "2014-06-17T22:04:22", "url": "https://files.pythonhosted.org/packages/4b/22/74a8112e93ad33a22f84e1d40e8e779958c766400b6ed31c5d84eaa24739/up-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3c696d4894c3039ab089e9be1fc3da42", "sha256": "11c8537ac45fbc14679f7930639dcdac975d5f1aaa5362d5bd853e04d1d25b74" }, "downloads": -1, "filename": "up-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3c696d4894c3039ab089e9be1fc3da42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14505, "upload_time": "2014-06-17T22:54:09", "url": "https://files.pythonhosted.org/packages/3b/fc/6aff252bea05c145340e10b38c2d4b144f545baaff566e8f4ed5c12bfce6/up-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c696d4894c3039ab089e9be1fc3da42", "sha256": "11c8537ac45fbc14679f7930639dcdac975d5f1aaa5362d5bd853e04d1d25b74" }, "downloads": -1, "filename": "up-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3c696d4894c3039ab089e9be1fc3da42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14505, "upload_time": "2014-06-17T22:54:09", "url": "https://files.pythonhosted.org/packages/3b/fc/6aff252bea05c145340e10b38c2d4b144f545baaff566e8f4ed5c12bfce6/up-0.2.1.tar.gz" } ] }