/opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations
from __future__ import absolute_import import socket from sentry_sdk import Hub from sentry_sdk._types import MYPY from sentry_sdk.consts import OP from sentry_sdk.integrations import Integration if MYPY: from socket import AddressFamily, SocketKind from typing import Tuple, Optional, Union, List __all__ = ["SocketIntegration"] class SocketIntegration(Integration): identifier = "socket" @staticmethod def setup_once(): # type: () -> None """ patches two of the most used functions of socket: create_connection and getaddrinfo(dns resolver) """ _patch_create_connection() _patch_getaddrinfo() def _get_span_description(host, port): # type: (Union[bytes, str, None], Union[str, int, None]) -> str try: host = host.decode() # type: ignore except (UnicodeDecodeError, AttributeError): pass description = "%s:%s" % (host, port) # type: ignore return description def _patch_create_connection(): # type: () -> None real_create_connection = socket.create_connection def create_connection( address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, # type: ignore source_address=None, ): # type: (Tuple[Optional[str], int], Optional[float], Optional[Tuple[Union[bytearray, bytes, str], int]])-> socket.socket hub = Hub.current if hub.get_integration(SocketIntegration) is None: return real_create_connection( address=address, timeout=timeout, source_address=source_address ) with hub.start_span( op=OP.SOCKET_CONNECTION, description=_get_span_description(address[0], address[1]), ) as span: span.set_data("address", address) span.set_data("timeout", timeout) span.set_data("source_address", source_address) return real_create_connection( address=address, timeout=timeout, source_address=source_address ) socket.create_connection = create_connection # type: ignore def _patch_getaddrinfo(): # type: () -> None real_getaddrinfo = socket.getaddrinfo def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): # type: (Union[bytes, str, None], Union[str, int, None], int, int, int, int) -> List[Tuple[AddressFamily, SocketKind, int, str, Union[Tuple[str, int], Tuple[str, int, int, int]]]] hub = Hub.current if hub.get_integration(SocketIntegration) is None: return real_getaddrinfo(host, port, family, type, proto, flags) with hub.start_span( op=OP.SOCKET_DNS, description=_get_span_description(host, port) ) as span: span.set_data("host", host) span.set_data("port", port) return real_getaddrinfo(host, port, family, type, proto, flags) socket.getaddrinfo = getaddrinfo # type: ignore
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
_wsgi_common.py
Edit
aiohttp.py
Edit
argv.py
Edit
arq.py
Edit
asgi.py
Edit
asyncio.py
Edit
atexit.py
Edit
aws_lambda.py
Edit
beam.py
Edit
boto3.py
Edit
bottle.py
Edit
celery.py
Edit
chalice.py
Edit
cloud_resource_context.py
Edit
dedupe.py
Edit
django
Edit
excepthook.py
Edit
executing.py
Edit
falcon.py
Edit
fastapi.py
Edit
flask.py
Edit
gcp.py
Edit
gnu_backtrace.py
Edit
grpc
Edit
httpx.py
Edit
huey.py
Edit
logging.py
Edit
loguru.py
Edit
modules.py
Edit
opentelemetry
Edit
pure_eval.py
Edit
pymongo.py
Edit
pyramid.py
Edit
quart.py
Edit
redis
Edit
rq.py
Edit
sanic.py
Edit
serverless.py
Edit
socket.py
Edit
spark
Edit
sqlalchemy.py
Edit
starlette.py
Edit
starlite.py
Edit
stdlib.py
Edit
threading.py
Edit
tornado.py
Edit
trytond.py
Edit
wsgi.py
Edit