{ "info": { "author": "Bence Nagy", "author_email": "bence@underyx.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "##############\naiohttp-sentry\n##############\n\n.. image:: https://circleci.com/gh/underyx/aiohttp-sentry.svg?style=shield\n :target: https://circleci.com/gh/underyx/aiohttp-sentry\n :alt: CI Status\n\nAn aiohttp_ server middleware for reporting failed requests to Sentry_\n\n*****\nUsage\n*****\n\nJust add ``SentryMiddleware`` as a middleware:\n\n.. code-block:: python\n\n from aiohttp import web\n from aiohttp_sentry import SentryMiddleware\n app = web.Application(middlewares=[SentryMiddleware()])\n\nConfiguration\n=============\n\nIf you want to customize error reporting,\nyou can use the optional ``sentry_kwargs`` parameter,\nwhich is a ``dict`` of kwargs passed to the lower-level Sentry library, ``raven``.\nWith this, you can specify environment details, filter out specific exceptions, and so on:\n\n.. code-block:: python\n\n from aiohttp import web\n from aiohttp_sentry import SentryMiddleware\n app = web.Application(\n middlewares=(\n SentryMiddleware({\n 'environment': 'foo',\n 'release': 'bar',\n 'ignore_exceptions': 'aiohttp.HTTPClientError'\n }),\n # ...\n ),\n )\n\nIf you are using the standard library's ``logging`` module,\nwe have a convenient parameter to patch it for you,\nto have logger calls send events to Sentry automatically:\n\n.. warning::\n This modifies your logging configuration globally\n when you instantiate the middleware.\n Even if you don't end up using the middleware instance for a request,\n all your logs will be sent to Sentry.\n\n.. code-block:: python\n\n import logging\n from aiohttp import web\n from aiohttp_sentry import SentryMiddleware\n\n app = web.Application(\n middlewares=[SentryMiddleware(patch_logging=True, sentry_log_level=logging.WARNING)],\n )\n\n.. _aiohttp: http://aiohttp.readthedocs.io/en/stable/\n.. _Sentry: http://sentry.io/\n\nAttaching Data to Events\n========================\n\nBy default, `aiohttp-sentry` passes this data alongside reported exceptions:\n\n- HTTP scheme\n- HTTP method\n- URL\n- Query String\n- Request Headers (including cookies)\n- Requester's IP address\n\nIf you need more data in sentry,\nyou can do that by subclassing from ``SentryMiddleware``\nand overriding the ``get_extra_data`` method,\nwhich returns all the above by default.\nHere's what that looks like:\n\n.. code-block:: python\n\n class DetailedSentryMiddleware(SentryMiddleware):\n\n async def get_extra_data(self, request):\n return {\n **await super().get_extra_data(request),\n 'settings': request.app['settings'],\n }\n\nWhile ``get_extra_data`` is a coroutine,\nwhich means it can make database queries, API calls,\nor other I/O operations, use this carefully!\nMake sure you understand the implications of executing expensive operations every time an error happens.\nIf the root cause of the error is an overloaded database,\nyou are just going to make the problem worse,\nwhile not even being able to get the extra info you wanted.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/underyx/aiohttp-sentry/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/underyx/aiohttp-sentry", "keywords": "", "license": "", "maintainer": "Bence Nagy", "maintainer_email": "bence@underyx.me", "name": "aiohttp-sentry", "package_url": "https://pypi.org/project/aiohttp-sentry/", "platform": "", "project_url": "https://pypi.org/project/aiohttp-sentry/", "project_urls": { "Download": "https://github.com/underyx/aiohttp-sentry/releases", "Homepage": "https://github.com/underyx/aiohttp-sentry" }, "release_url": "https://pypi.org/project/aiohttp-sentry/0.6.0/", "requires_dist": [ "raven-aiohttp (~=0.7.0)", "raven (~=6.10)" ], "requires_python": "", "summary": "An aiohttp middleware for reporting errors to Sentry", "version": "0.6.0" }, "last_serial": 5517229, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1bd4272797ef4fc1efd7deb2638f20ee", "sha256": "86cf076269b3e86b36f65188f7a9acaaf52c33b516a421ac33bec9f4db7df85b" }, "downloads": -1, "filename": "aiohttp_sentry-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1bd4272797ef4fc1efd7deb2638f20ee", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3211, "upload_time": "2016-12-16T11:19:55", "url": "https://files.pythonhosted.org/packages/e8/a6/5d01715152b01624b19837d30711e38b8d231e1ebda060278725cb51d393/aiohttp_sentry-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "403bc172264efd0a7769e704e6880971", "sha256": "cc458fcb83b2390ef5d52b38895fa1844e703a7f69329acccafe8d84416eed0c" }, "downloads": -1, "filename": "aiohttp-sentry-0.1.0.tar.gz", "has_sig": true, "md5_digest": "403bc172264efd0a7769e704e6880971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1902, "upload_time": "2016-12-16T11:20:27", "url": "https://files.pythonhosted.org/packages/93/1a/e7964d993a19ffd3e6bcab3bc98259564e55285f9d6a2964950766165ecb/aiohttp-sentry-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "294a7b2327628cfb706da8297b1d6129", "sha256": "424770446de588d459891c9ce10e83feabdc7ae6c105227fab38bee00eaf8556" }, "downloads": -1, "filename": "aiohttp_sentry-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "294a7b2327628cfb706da8297b1d6129", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3393, "upload_time": "2017-08-28T11:03:46", "url": "https://files.pythonhosted.org/packages/1b/fb/3908c45b0b763867824f995639622353b62cad8ab44bd90e78a1c6dd7b4a/aiohttp_sentry-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "063bd50ef46ca11647306ea48c2a4bf2", "sha256": "59bc1ed3c00bc52af9c7ca02efe05e70789fe2ed6ca7d7e8571b76579c0ae224" }, "downloads": -1, "filename": "aiohttp-sentry-0.2.0.tar.gz", "has_sig": true, "md5_digest": "063bd50ef46ca11647306ea48c2a4bf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2008, "upload_time": "2017-08-28T11:03:49", "url": "https://files.pythonhosted.org/packages/f3/71/0d96957db39df959b8b04651fd007ca8267fce318cd5d03de5340a632de5/aiohttp-sentry-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d1d4ca24c15ea12cc2e82944a59fa398", "sha256": "95a8dbff9da7c091c9345e2ccb602b456235ad7c110d9c55dd8e37fcab893403" }, "downloads": -1, "filename": "aiohttp_sentry-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d1d4ca24c15ea12cc2e82944a59fa398", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3415, "upload_time": "2018-04-26T08:28:40", "url": "https://files.pythonhosted.org/packages/dc/1b/57f0b4f22eb0c8929f5b392c129c28b62c10f21a96f05069a249b96e74b7/aiohttp_sentry-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "deb0bb3ca4b876ba2bbf4ff661553a0a", "sha256": "6580af0c604d70fb44ccba86b08ecc636a550566815691c1485af08d6bd287a5" }, "downloads": -1, "filename": "aiohttp-sentry-0.3.0.tar.gz", "has_sig": true, "md5_digest": "deb0bb3ca4b876ba2bbf4ff661553a0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2016, "upload_time": "2018-04-26T08:28:42", "url": "https://files.pythonhosted.org/packages/eb/26/9abdb0dfa3ef2f92db809922e484bbf308bb82d004ebb7f94b9c2fd94b4f/aiohttp-sentry-0.3.0.tar.gz" } ], "0.4.0.post1": [ { "comment_text": "", "digests": { "md5": "17742e221c0363fb930a2f2582f9da5d", "sha256": "350d57132d867e81d042b85c1bd2b2f48af8e08ed1c0de8d44a8fb6a90be272c" }, "downloads": -1, "filename": "aiohttp_sentry-0.4.0.post1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "17742e221c0363fb930a2f2582f9da5d", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 3018, "upload_time": "2018-07-23T14:17:32", "url": "https://files.pythonhosted.org/packages/f9/4c/a83eb93d30665a3c2d13ca86cd956b19822935806e5953041157146b6ef1/aiohttp_sentry-0.4.0.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a015360b9edb98b24f4c5434f05e4fa8", "sha256": "54d0ef7a9083d7eccf0feef3a41a806ea6d6397bef5f13dcdbdf81136b43f64b" }, "downloads": -1, "filename": "aiohttp-sentry-0.4.0.post1.tar.gz", "has_sig": true, "md5_digest": "a015360b9edb98b24f4c5434f05e4fa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2963, "upload_time": "2018-07-23T14:17:34", "url": "https://files.pythonhosted.org/packages/99/e4/746cbd4192f89604ff969c0a74d26bf8040545b4b6529e5b0d5bcc7dde68/aiohttp-sentry-0.4.0.post1.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b208938a964504698a5ff330c6cf5878", "sha256": "0749df462027745c6b9705f31e22e0b6894c68bdf2d757067a48a16215ac8838" }, "downloads": -1, "filename": "aiohttp_sentry-0.4.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b208938a964504698a5ff330c6cf5878", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 2962, "upload_time": "2018-07-23T14:32:48", "url": "https://files.pythonhosted.org/packages/16/d0/841bd3f127c3dd16db9335dcc27fb02d56709b6969244b2d5d6c75acbb37/aiohttp_sentry-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b3fb7819135fe7511c1d9bac7a68d50", "sha256": "bcaac444b5b79e62be918015ef8c8f60859ea285bd377462f63c0084d668684e" }, "downloads": -1, "filename": "aiohttp-sentry-0.4.1.tar.gz", "has_sig": true, "md5_digest": "3b3fb7819135fe7511c1d9bac7a68d50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2960, "upload_time": "2018-07-23T14:32:50", "url": "https://files.pythonhosted.org/packages/86/b8/27f60fb1524e6f1afa83e411bed41e3a2daf574e6bb14f8df45e01cc6d61/aiohttp-sentry-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "331fc42b4e009b56f6225ed1615bd1c2", "sha256": "96588014dcadb13ec3c2cb365b0e5d71ee59cfed35295087d711d881798df3ce" }, "downloads": -1, "filename": "aiohttp_sentry-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "331fc42b4e009b56f6225ed1615bd1c2", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 4366, "upload_time": "2019-01-10T12:31:21", "url": "https://files.pythonhosted.org/packages/06/cc/98ee22e39eb1dea78f15427aae2de737d4ed42d813aa7bf2f10bfb7e1f6b/aiohttp_sentry-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9929c0f1c787249e1403ca65b46cee78", "sha256": "0b2f7a2f322d31cbe848a9e0e5a03e713ebff0e362a7733ef873103cb885edb5" }, "downloads": -1, "filename": "aiohttp-sentry-0.5.0.tar.gz", "has_sig": true, "md5_digest": "9929c0f1c787249e1403ca65b46cee78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3496, "upload_time": "2019-01-10T12:31:24", "url": "https://files.pythonhosted.org/packages/5f/27/0e8484cd3478f5ce5b75679613726fc1288b0c9f2cd939c93e051645dfa7/aiohttp-sentry-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "104cb7eece9e5cb42205be2fab6757a0", "sha256": "05ef17aabc74c4c464a405e0a5c95f062f80ad0178d9cb2b5e613d0656741ea6" }, "downloads": -1, "filename": "aiohttp_sentry-0.6.0-py3-none-any.whl", "has_sig": true, "md5_digest": "104cb7eece9e5cb42205be2fab6757a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4712, "upload_time": "2019-07-11T11:48:47", "url": "https://files.pythonhosted.org/packages/bc/fb/05ebe534849733bf1d94cf6b51e3ec14c58e217e6a8f7ae95bb1a9cfd8ec/aiohttp_sentry-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d164d4816474f9f64e3f44db5a4527e7", "sha256": "ea059c72553ae12f66bac020d4af98aa37399754b647f01258b5ec04f34d3bda" }, "downloads": -1, "filename": "aiohttp-sentry-0.6.0.tar.gz", "has_sig": true, "md5_digest": "d164d4816474f9f64e3f44db5a4527e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3885, "upload_time": "2019-07-11T11:48:49", "url": "https://files.pythonhosted.org/packages/78/33/b0053af4c7027e88606e8ff2498a7f4fe8c36397619bfcd07b5a20f5ffc5/aiohttp-sentry-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "104cb7eece9e5cb42205be2fab6757a0", "sha256": "05ef17aabc74c4c464a405e0a5c95f062f80ad0178d9cb2b5e613d0656741ea6" }, "downloads": -1, "filename": "aiohttp_sentry-0.6.0-py3-none-any.whl", "has_sig": true, "md5_digest": "104cb7eece9e5cb42205be2fab6757a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4712, "upload_time": "2019-07-11T11:48:47", "url": "https://files.pythonhosted.org/packages/bc/fb/05ebe534849733bf1d94cf6b51e3ec14c58e217e6a8f7ae95bb1a9cfd8ec/aiohttp_sentry-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d164d4816474f9f64e3f44db5a4527e7", "sha256": "ea059c72553ae12f66bac020d4af98aa37399754b647f01258b5ec04f34d3bda" }, "downloads": -1, "filename": "aiohttp-sentry-0.6.0.tar.gz", "has_sig": true, "md5_digest": "d164d4816474f9f64e3f44db5a4527e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3885, "upload_time": "2019-07-11T11:48:49", "url": "https://files.pythonhosted.org/packages/78/33/b0053af4c7027e88606e8ff2498a7f4fe8c36397619bfcd07b5a20f5ffc5/aiohttp-sentry-0.6.0.tar.gz" } ] }