{ "info": { "author": "merry-bits", "author_email": "merry-bits@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: System :: Monitoring" ], "description": "Owl\n===\n\n.. image:: https://api.travis-ci.org/merry-bits/Owl.svg?branch=master\n :target: https://travis-ci.org/merry-bits/Owl?branch=master\n\nMeasure how long your `Falcon `_ requests take and\nsend each measurement as an event to `Riemann `_.\n\n\nExample\n-------\n\nOwl is designed to be a mix-in class for API. To use Owl you create your own\nAPI class providing configuration parameters for Owl.\n\nIn Python 3 this could look something like this:\n\n.. code-block:: python\n\n from falcon.api import API\n from riemann_client.client import QueuedClient\n from owl import Owl\n\n class MonitoredAPI(Owl, API):\n\n def __init__(self, *args, **kwds):\n kwds[\"get_riemann_client\"] = lambda: QueuedClient()\n kwds[\"owl_service\"] = \"MyAPI\" # service name for Riemann\n super().__init__(*args, **kwds)\n\n api = MonitoredAPI()\n # api.add_route(...)\n # ...\n\nIn Riemann you get the end point and the request result status code as tags. To\nconvert them into their own `InfluxDB `_ tags (\n``endpoint` and ``status-code``) for later use (for example in\n`Grafana `_) you could do something like this in your\nRiemann InfluxDB configuration:\n\n.. code-block:: clojure\n\n (defn- parse-api-event\n [event]\n (if (contains? event :tags)\n (let [[endpoint status-code & other] (:tags event)]\n (assoc event\n :endpoint endpoint\n :status-code status-code))\n event))\n\n (let [index (index)]\n (streams index\n ; Write API monitoring to database\n (where (service \"MyAPI\")\n #(info (parse-api-event %))\n (comp api-db parse-api-event))))\n\nCheck out the ``event_builder`` parameter if you want to customize the event\nparameters (change what service means or add a description for example).\n\n\nInstallation\n============\n\n.. code-block:: bash\n\n $ pip install owl\n\n\nChangelog\n=========\n\n0.2.0\n-----\n\n - generate a message with status 500 when a request throws an exception", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/merry-bits/Owl", "keywords": "flacon riemann monitoring measure request time end-point duration", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "Owl", "package_url": "https://pypi.org/project/Owl/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Owl/", "project_urls": { "Homepage": "https://github.com/merry-bits/Owl" }, "release_url": "https://pypi.org/project/Owl/0.2.1/", "requires_dist": [ "pytz", "falcon (==1.0.0); extra == 'test'", "mock (==1.3.0); extra == 'test'", "nose (==1.3.7); extra == 'test'", "riemann-client (==6.3.0); extra == 'test'" ], "requires_python": "", "summary": "Monitor Falcon with Riemann", "version": "0.2.1" }, "last_serial": 2131183, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5a791108037cbec66391d09f66770ab6", "sha256": "17ed5b3907ef0b4e4bc6bd2c3e0752f305a94c3d6a87e4fbac3a3032e6501103" }, "downloads": -1, "filename": "Owl-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a791108037cbec66391d09f66770ab6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7968, "upload_time": "2016-02-10T11:22:58", "url": "https://files.pythonhosted.org/packages/ca/ea/86434a7db75a632f6819636dec2badbf2c4a29ef769b226ff0d0d9b5dea4/Owl-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90802186f5d24ae8dfc49d1efec889e1", "sha256": "be255f780f3d8cffceb0cbea874ee6caf5c89628cabb3720c84dc67fa8f29ebd" }, "downloads": -1, "filename": "Owl-0.0.1.tar.gz", "has_sig": false, "md5_digest": "90802186f5d24ae8dfc49d1efec889e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5735, "upload_time": "2016-02-10T11:23:04", "url": "https://files.pythonhosted.org/packages/14/9e/c7a9f1c81efa48324b32a62493306d6fb4fcd6ff7e092e10931cad2ed867/Owl-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "296bb1e40c02ea0d3adb95373caca8f4", "sha256": "f519e3bc977e430fbd0fa9e7e529420ac804ec3108c9d84d82339b22284bd88d" }, "downloads": -1, "filename": "Owl-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "296bb1e40c02ea0d3adb95373caca8f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8134, "upload_time": "2016-03-07T19:26:38", "url": "https://files.pythonhosted.org/packages/62/10/110f2e2f9c2b8e41f01eb009e6be34a89e64ae67f73ecec1b7524679447d/Owl-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7dd24df82b4289311e2a5701a33b9fe", "sha256": "eedb26a2e9d6e83d0ce8bc887ed263346db1d705073c3e24843a3c57b072e052" }, "downloads": -1, "filename": "Owl-0.1.0.tar.gz", "has_sig": true, "md5_digest": "e7dd24df82b4289311e2a5701a33b9fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5819, "upload_time": "2016-03-07T19:27:06", "url": "https://files.pythonhosted.org/packages/c8/70/14a10288703550746a8181a86d44ff488edaef4a159577a5d493897ecd14/Owl-0.1.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "03235e3695cc8a3b585084e03db7b584", "sha256": "ad6b2d6a0375c12c4f0b9ebd943c2c4bf3a14dfcfa53de28b179f2bf8b8d9ef1" }, "downloads": -1, "filename": "Owl-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03235e3695cc8a3b585084e03db7b584", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8332, "upload_time": "2016-05-24T14:25:03", "url": "https://files.pythonhosted.org/packages/ac/bb/c9a09395add793fe4841ef40b1ee5cd64421bbed1657f7d046f496351ddb/Owl-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "838ca07b336ae5843e7534da0a1446cb", "sha256": "5153396456dbb39562c095552448f5e49f5aaaa5cb3ddafb9bf6bd3ed30b00ad" }, "downloads": -1, "filename": "Owl-0.2.1.tar.gz", "has_sig": false, "md5_digest": "838ca07b336ae5843e7534da0a1446cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5980, "upload_time": "2016-05-24T14:25:35", "url": "https://files.pythonhosted.org/packages/3f/04/dc007de1e3129e54d1a79fadf198eb07848c1d902321c0b6ca40461518bb/Owl-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "03235e3695cc8a3b585084e03db7b584", "sha256": "ad6b2d6a0375c12c4f0b9ebd943c2c4bf3a14dfcfa53de28b179f2bf8b8d9ef1" }, "downloads": -1, "filename": "Owl-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03235e3695cc8a3b585084e03db7b584", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8332, "upload_time": "2016-05-24T14:25:03", "url": "https://files.pythonhosted.org/packages/ac/bb/c9a09395add793fe4841ef40b1ee5cd64421bbed1657f7d046f496351ddb/Owl-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "838ca07b336ae5843e7534da0a1446cb", "sha256": "5153396456dbb39562c095552448f5e49f5aaaa5cb3ddafb9bf6bd3ed30b00ad" }, "downloads": -1, "filename": "Owl-0.2.1.tar.gz", "has_sig": false, "md5_digest": "838ca07b336ae5843e7534da0a1446cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5980, "upload_time": "2016-05-24T14:25:35", "url": "https://files.pythonhosted.org/packages/3f/04/dc007de1e3129e54d1a79fadf198eb07848c1d902321c0b6ca40461518bb/Owl-0.2.1.tar.gz" } ] }