{ "info": { "author": "OpenTable Architecture Team", "author_email": "archteam@opentable.onmicrosoft.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Topic :: System :: Monitoring", "Topic :: System :: Networking :: Monitoring" ], "description": "otpl-service-check\n==================\nBasic Nagios/Sensu checks for OpenTable Discovery services.\n\nDistribution\n------------\n``_\n\nDependencies\n------------\nSee ``requirements.txt``.\n\nArguments\n---------\nRun with ``-h`` or ``--help`` to see command-line argument\ndocumentation.\n\nInterface\n---------\nIf there is an error parsing command-line arguments, we return with exit\ncode 3 (``UNKNOWN``) and print the invocation error.\n\nIf there is an error reaching Discovery and parsing the announcements\nfor your service, we return with exit code 3 (``UNKNOWN``).\n\nWe log critical and warning statuses related to announcement, and return\nwith exit codes 2 (``CRITICAL``) and 1 (``WARNING``)\nrespectively.\n\nHealthcheck Endpoint Checking\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nBy default, ``otpl-service-check`` checks your service for health.\n\nIf your healthcheck endpoint returns with status code ``2xx``, this is\nconsidered a success. If it returns with ``4xx``, this is considered a\nwarning (exit code 1). ``5xx`` is considered critical (exit code 2).\nIn the latter two cases, in addition to logging the service status,\nbased on the ``Content-Type`` of the response, we log a parsed version\nof the response body.\n\n- Approximately the first kilobyte of pretty-formatted ``applicaton/json`` responses will be printed.\n- ``text/html`` responses are elided; a message saying as much is printed.\n- The first 128 bytes of ``text/plain`` responses will be printed.\n- Otherwise, responses will be treated as ``text/plain``.\n\n*All* critical statuses, warnings, and successes are logged, and the\nexit status of the whole process is the worst of the set.\n\nRace Avoidance\n~~~~~~~~~~~~~~\nPulling all announcements from Discovery and then checking each one is\ninherently racy. If ``otpl-service-check`` finds critical errors, it\ndouble-checks your service's announcements. If any of the critical\nerrors are for an announcement that no longer exists, they are\ndowngraded to warnings, and a further warning is emitted indicating that\nthis circumstance occurred.\n\nNote that this does not avoid all race conditions, just a particular\nclass of them.\n\nEndpoint Response Codes\n-----------------------\n* ``2xx``: ``0``, ``OK``\n* ``4xx``: ``1``, ``WARNING``\n* ``5xx``: ``2``, ``CRITICAL``\n\nThis is *a bit of an abuse* of HTTP response codes, but our policy is\nthat this is the simplest and most flexible way to get rich status\nresponses from health check endpoints.\n\nReleasing\n---------\nSet up PyPI RC file, ``.pypirc``. E.g.::\n\n [distutils]\n index-servers =\n pypi\n pypitest\n\n [pypitest]\n repository = https://testpypi.python.org/pypi\n username = cpennello_opentable\n\n [pypi]\n repository = https://pypi.python.org/pypi\n username = cpennello_opentable\n\nSuppose the version being released is ``a.b.c``.\n\nCreate distributions: ``python setup.py sdist bdist_wheel``\n\nSign distribution files::\n\n for x in dist/*a.b.c*;do\n gpg --detach-sign -a $x\n done\n\nUse Twine_, uploading to the test repo first.\n``twine upload -r pypitest dist/*a.b.c*``\n\nThen to the real repo.\n``twine upload -r pypi dist/*a.b.c*``\n\nNotes\n-----\nNagios and Sensu plugin API documentation:\n\n* ``_\n* ``_\n\n.. _Twine: https://github.com/pypa/twine", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/opentable/otpl-service-check", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "otpl-service-check", "package_url": "https://pypi.org/project/otpl-service-check/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/otpl-service-check/", "project_urls": { "Homepage": "https://github.com/opentable/otpl-service-check" }, "release_url": "https://pypi.org/project/otpl-service-check/1.1.4/", "requires_dist": [ "requests (>=2.2.0)" ], "requires_python": "", "summary": "A selection of Nagios plugins to monitor services hosted in OpenTable Mesos.", "version": "1.1.4" }, "last_serial": 5532526, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cbc1a8c299a46b3c8871467270da66eb", "sha256": "e017751a52924d1b637ac86a268adab6046c379a4249219092098ac034ffc7ca" }, "downloads": -1, "filename": "otpl_service_check-1.0.1-py2-none-any.whl", "has_sig": true, "md5_digest": "cbc1a8c299a46b3c8871467270da66eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5976, "upload_time": "2016-06-30T16:40:05", "url": "https://files.pythonhosted.org/packages/d8/7b/4c1f59465f1a9983e3c215e529ab0b9d6fba9cc328a4609a6c4c9dc67f42/otpl_service_check-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c272a2691e5c87df6baf1474fe496cd7", "sha256": "ee31a1b94610e2e1909f9b66f96f6a8ba8e4226f78dfc80e276f229b07efe32d" }, "downloads": -1, "filename": "otpl-service-check-1.0.1.tar.gz", "has_sig": true, "md5_digest": "c272a2691e5c87df6baf1474fe496cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8039, "upload_time": "2016-06-30T16:40:11", "url": "https://files.pythonhosted.org/packages/ba/2b/60fc8d171d2c4fdf3f4db150984cf6a608765196d9e27f61a0265cd1d93e/otpl-service-check-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "885e6b59b4fefa06c3763692429278df", "sha256": "d82ab279a7c950bd89ea5face24532ab2d8006484ab5622cbe2f71446ff6a447" }, "downloads": -1, "filename": "otpl_service_check-1.0.2-py2-none-any.whl", "has_sig": true, "md5_digest": "885e6b59b4fefa06c3763692429278df", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5982, "upload_time": "2016-07-01T19:12:28", "url": "https://files.pythonhosted.org/packages/2d/4f/1cf594b2a336d2ee3c02b44ed610fd4917c469b5e9bf4db671471632ae80/otpl_service_check-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc899773e926cfbf8c787eea143eff2e", "sha256": "b68e0f44b469c2578e2cfcaf8a8d20299074fcbcc95c70253d9180d13a3bffa7" }, "downloads": -1, "filename": "otpl-service-check-1.0.2.tar.gz", "has_sig": true, "md5_digest": "bc899773e926cfbf8c787eea143eff2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8045, "upload_time": "2016-07-01T19:12:32", "url": "https://files.pythonhosted.org/packages/ac/73/6ca89a7ad25f9cef0bf496bf26d6cd1ab2c7f00d5da4ed6362f844cc5164/otpl-service-check-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "58b17c49dcf3984fd329e55f981ae7ca", "sha256": "c1f6d205de46b8a626438e3c5ddcbe28d82fcd99808994e03d5f0aacff8d60e3" }, "downloads": -1, "filename": "otpl_service_check-1.0.3-py2-none-any.whl", "has_sig": true, "md5_digest": "58b17c49dcf3984fd329e55f981ae7ca", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6127, "upload_time": "2016-10-18T15:59:26", "url": "https://files.pythonhosted.org/packages/34/ac/3239ef996ca7ce96b3c0aa18abb779c1d7014f8aab0ef651a0acb33591eb/otpl_service_check-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81641526a9044c2363bf015425c4ac7d", "sha256": "02c271c40178c06ebb5f8b4569c2275a7fc0c3d82ea19e7382827c7bf496998b" }, "downloads": -1, "filename": "otpl-service-check-1.0.3.tar.gz", "has_sig": true, "md5_digest": "81641526a9044c2363bf015425c4ac7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8143, "upload_time": "2016-10-18T15:59:28", "url": "https://files.pythonhosted.org/packages/a2/66/3b289e14f44df4d79a885c9b7ce72f4edf846c9fb535577a916c6ae18b03/otpl-service-check-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "06b57197b7ebacb0e41752620c35e015", "sha256": "8fca6363e9be74f355a457bb266da38fcfa384bac468172bc9e90d883fa95583" }, "downloads": -1, "filename": "otpl_service_check-1.0.4-py2-none-any.whl", "has_sig": true, "md5_digest": "06b57197b7ebacb0e41752620c35e015", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6773, "upload_time": "2016-11-09T23:41:47", "url": "https://files.pythonhosted.org/packages/72/17/473e674064c885c8c501a09447b6eb1f02974099841062fa336d65ef0e65/otpl_service_check-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db94e01859c2d4b13ac90637ca51553a", "sha256": "dc3025be2858a79d655a865e09d0191231b0889c724c3861c946661e12135314" }, "downloads": -1, "filename": "otpl-service-check-1.0.4.tar.gz", "has_sig": true, "md5_digest": "db94e01859c2d4b13ac90637ca51553a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8678, "upload_time": "2016-11-09T23:41:50", "url": "https://files.pythonhosted.org/packages/e4/f4/f6a67232a911b7a1c43a1af7cb8b1887a171dd209f16f11d348b17dc5b4f/otpl-service-check-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "98fb7408f26067b9e5d72207dbc79a3e", "sha256": "6f6a132c2edbccbd6859489dfc3efe51273807408382631b44bb2ecb4c1b6674" }, "downloads": -1, "filename": "otpl-service-check-1.0.5.tar.gz", "has_sig": false, "md5_digest": "98fb7408f26067b9e5d72207dbc79a3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8794, "upload_time": "2016-11-21T23:44:33", "url": "https://files.pythonhosted.org/packages/6e/a4/26d762751af1619ab490174c360c79add92012f53442e7dc4aad17efe3b8/otpl-service-check-1.0.5.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "21722c42ae91e8af8be1b38e2866b967", "sha256": "1628fb3ba06a7ff17a87045d479680770dcd3dd815531c22cb7226dc593ca2c0" }, "downloads": -1, "filename": "otpl_service_check-1.1.0-py2-none-any.whl", "has_sig": true, "md5_digest": "21722c42ae91e8af8be1b38e2866b967", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6957, "upload_time": "2016-12-01T17:19:50", "url": "https://files.pythonhosted.org/packages/b8/df/0351e9f3eb4e24e10c2a493055e40c74c6f2784453bc7c386068f1a3d7a7/otpl_service_check-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63f2390bb94400151b2703a5fa390762", "sha256": "1f0ea3304af90634da84de2a2964fe748e64c3384070f2d7c04c3e5b2e021545" }, "downloads": -1, "filename": "otpl-service-check-1.1.0.tar.gz", "has_sig": true, "md5_digest": "63f2390bb94400151b2703a5fa390762", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8871, "upload_time": "2016-12-01T17:19:52", "url": "https://files.pythonhosted.org/packages/bb/4c/6a6eb65cd5c7bc3196c9c611290816e1831da5c955999f131ca8ff653616/otpl-service-check-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7afcb1260d5d92b9deaf26a7941b2a32", "sha256": "c031b9d00941ab227b1a529e90478289e50bc1841c4d349171266bbfce502fde" }, "downloads": -1, "filename": "otpl_service_check-1.1.1-py2-none-any.whl", "has_sig": true, "md5_digest": "7afcb1260d5d92b9deaf26a7941b2a32", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7637, "upload_time": "2017-02-02T17:47:44", "url": "https://files.pythonhosted.org/packages/b1/cc/99a83822e280f65adb5ae77b41d96e91480e9b42eef4a13594cd0e24da77/otpl_service_check-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3fe76766bfd3373ed03aa50fce3ef79", "sha256": "c7e900e96a7803056fecbf84bbf2ecd0f59f3d677cc607d614478048c0b1e732" }, "downloads": -1, "filename": "otpl-service-check-1.1.1.tar.gz", "has_sig": true, "md5_digest": "f3fe76766bfd3373ed03aa50fce3ef79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9299, "upload_time": "2017-02-02T17:47:46", "url": "https://files.pythonhosted.org/packages/df/c2/20d1b7ec97e8f4db34474f74bba4e35961e5f4c3ef205c0f1d8286466a0e/otpl-service-check-1.1.1.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "b93e841fe1e0e133cad1a203a6eb6bbc", "sha256": "ba1d86f2e3a97e495c03e645b534e5d7dbd4cb4ab4f65cfce63b47725f736f6a" }, "downloads": -1, "filename": "otpl_service_check-1.1.3-py2-none-any.whl", "has_sig": true, "md5_digest": "b93e841fe1e0e133cad1a203a6eb6bbc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7723, "upload_time": "2017-02-21T20:14:08", "url": "https://files.pythonhosted.org/packages/f4/78/55fbea46466fcbcbd707db032f64724986613cf43e3aca066efcc6b3683c/otpl_service_check-1.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab035dea9289b6ad10d5aaa7cc47203c", "sha256": "d389dbd405503e6dd270687be57864c1ba269e02de00981912ef29c72605b438" }, "downloads": -1, "filename": "otpl-service-check-1.1.3.tar.gz", "has_sig": true, "md5_digest": "ab035dea9289b6ad10d5aaa7cc47203c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9377, "upload_time": "2017-02-21T20:14:09", "url": "https://files.pythonhosted.org/packages/57/4d/f0ef89a09fe6e33174e7013b7069accf1884873e8dc796e23beb1db17c86/otpl-service-check-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "e24809ac93f47de86703f6d32c91492c", "sha256": "61894791b2ee19d6c90139307d0b3d0b6c8de5ef0459557876a778edc593a60a" }, "downloads": -1, "filename": "otpl_service_check-1.1.4-py2-none-any.whl", "has_sig": true, "md5_digest": "e24809ac93f47de86703f6d32c91492c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8474, "upload_time": "2017-02-22T19:29:54", "url": "https://files.pythonhosted.org/packages/e5/34/1be487272122ce3d7b06ff06aa8eb3be22047a44921461a50931fda1701e/otpl_service_check-1.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6054a8f692eea0223ed07c2a299b00c3", "sha256": "51ed347545cdbdf5a606829f9c23ce07ab03c524014595af9587a1af564d2944" }, "downloads": -1, "filename": "otpl-service-check-1.1.4.tar.gz", "has_sig": true, "md5_digest": "6054a8f692eea0223ed07c2a299b00c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9934, "upload_time": "2017-02-22T19:29:57", "url": "https://files.pythonhosted.org/packages/d5/09/e74b0bdd3e11fce48c4ea692b6ddaa46e54f3f6c8a5a7dcf0c574f43cc5c/otpl-service-check-1.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e24809ac93f47de86703f6d32c91492c", "sha256": "61894791b2ee19d6c90139307d0b3d0b6c8de5ef0459557876a778edc593a60a" }, "downloads": -1, "filename": "otpl_service_check-1.1.4-py2-none-any.whl", "has_sig": true, "md5_digest": "e24809ac93f47de86703f6d32c91492c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8474, "upload_time": "2017-02-22T19:29:54", "url": "https://files.pythonhosted.org/packages/e5/34/1be487272122ce3d7b06ff06aa8eb3be22047a44921461a50931fda1701e/otpl_service_check-1.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6054a8f692eea0223ed07c2a299b00c3", "sha256": "51ed347545cdbdf5a606829f9c23ce07ab03c524014595af9587a1af564d2944" }, "downloads": -1, "filename": "otpl-service-check-1.1.4.tar.gz", "has_sig": true, "md5_digest": "6054a8f692eea0223ed07c2a299b00c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9934, "upload_time": "2017-02-22T19:29:57", "url": "https://files.pythonhosted.org/packages/d5/09/e74b0bdd3e11fce48c4ea692b6ddaa46e54f3f6c8a5a7dcf0c574f43cc5c/otpl-service-check-1.1.4.tar.gz" } ] }