from sentry_sdk.hub import Hub from sentry_sdk.integrations import Integration try: from httplib import HTTPConnection # type: ignore except ImportError: from http.client import HTTPConnection class StdlibIntegration(Integration): identifier = "stdlib" @staticmethod def setup_once(): # type: () -> None install_httplib() def install_httplib(): # type: () -> None real_putrequest = HTTPConnection.putrequest real_getresponse = HTTPConnection.getresponse def putrequest(self, method, url, *args, **kwargs): rv = real_putrequest(self, method, url, *args, **kwargs) if Hub.current.get_integration(StdlibIntegration) is None: return rv self._sentrysdk_data_dict = data = {} host = self.host port = self.port default_port = self.default_port real_url = url if not real_url.startswith(("http://", "https://")): real_url = "%s://%s%s%s" % ( default_port == 443 and "https" or "http", host, port != default_port and ":%s" % port or "", url, ) data["url"] = real_url data["method"] = method return rv def getresponse(self, *args, **kwargs): rv = real_getresponse(self, *args, **kwargs) hub = Hub.current if hub.get_integration(StdlibIntegration) is None: return rv data = getattr(self, "_sentrysdk_data_dict", None) or {} if "status_code" not in data: data["status_code"] = rv.status data["reason"] = rv.reason hub.add_breadcrumb( type="http", category="httplib", data=data, hint={"httplib_response": rv} ) return rv HTTPConnection.putrequest = putrequest HTTPConnection.getresponse = getresponse
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
django | Folder | 0755 |
|
|
__init__.py | File | 4.14 KB | 0644 |
|
_wsgi_common.py | File | 3.58 KB | 0644 |
|
aiohttp.py | File | 3.8 KB | 0644 |
|
argv.py | File | 894 B | 0644 |
|
atexit.py | File | 1.46 KB | 0644 |
|
aws_lambda.py | File | 6.6 KB | 0644 |
|
bottle.py | File | 5.4 KB | 0644 |
|
celery.py | File | 4.32 KB | 0644 |
|
dedupe.py | File | 1.06 KB | 0644 |
|
excepthook.py | File | 1.3 KB | 0644 |
|
flask.py | File | 7.1 KB | 0644 |
|
gnu_backtrace.py | File | 2.94 KB | 0644 |
|
logging.py | File | 5.88 KB | 0644 |
|
modules.py | File | 1.21 KB | 0644 |
|
pyramid.py | File | 5.78 KB | 0644 |
|
rq.py | File | 3.2 KB | 0644 |
|
sanic.py | File | 6.9 KB | 0644 |
|
serverless.py | File | 1.21 KB | 0644 |
|
stdlib.py | File | 1.83 KB | 0644 |
|
threading.py | File | 1.56 KB | 0644 |
|
tornado.py | File | 6.24 KB | 0644 |
|
wsgi.py | File | 7.13 KB | 0644 |
|