X7ROOT File Manager
Current Path:
/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
sentry_sdk
/
integrations
/
??
..
??
__init__.py
(12.51 KB)
??
__pycache__
??
_asgi_common.py
(4 KB)
??
_wsgi_common.py
(7.28 KB)
??
aiohttp.py
(19.28 KB)
??
aiomysql.py
(9.09 KB)
??
anthropic.py
(39 KB)
??
argv.py
(876 B)
??
ariadne.py
(5.7 KB)
??
arq.py
(9.23 KB)
??
asgi.py
(20.06 KB)
??
asyncio.py
(9.28 KB)
??
asyncpg.py
(9.68 KB)
??
atexit.py
(1.51 KB)
??
aws_lambda.py
(17.41 KB)
??
beam.py
(4.91 KB)
??
boto3.py
(6.2 KB)
??
bottle.py
(7.21 KB)
??
celery
??
chalice.py
(4.51 KB)
??
clickhouse_driver.py
(5.85 KB)
??
cloud_resource_context.py
(7.49 KB)
??
cohere.py
(10.44 KB)
??
dedupe.py
(1.86 KB)
??
django
??
dramatiq.py
(8.02 KB)
??
excepthook.py
(2.25 KB)
??
executing.py
(1.93 KB)
??
falcon.py
(9.04 KB)
??
fastapi.py
(5.28 KB)
??
flask.py
(8.27 KB)
??
gcp.py
(10.57 KB)
??
gnu_backtrace.py
(2.72 KB)
??
google_genai
??
gql.py
(4.93 KB)
??
graphene.py
(5.71 KB)
??
grpc
??
httpx.py
(9.79 KB)
??
httpx2.py
(9.8 KB)
??
huey.py
(8.19 KB)
??
huggingface_hub.py
(15.28 KB)
??
langchain.py
(48.31 KB)
??
langgraph.py
(18.13 KB)
??
launchdarkly.py
(1.87 KB)
??
litellm.py
(13.03 KB)
??
litestar.py
(11.46 KB)
??
logging.py
(15.69 KB)
??
loguru.py
(6.35 KB)
??
mcp.py
(23.12 KB)
??
modules.py
(787 B)
??
openai.py
(53.38 KB)
??
openai_agents
??
openfeature.py
(1.08 KB)
??
opentelemetry
??
otlp.py
(7.99 KB)
??
pure_eval.py
(4.41 KB)
??
pydantic_ai
??
pymongo.py
(8.21 KB)
??
pyramid.py
(7.42 KB)
??
pyreqwest.py
(6.82 KB)
??
quart.py
(7.32 KB)
??
ray.py
(5.75 KB)
??
redis
??
rq.py
(7.81 KB)
??
rust_tracing.py
(9.44 KB)
??
sanic.py
(15.25 KB)
??
serverless.py
(1.58 KB)
??
socket.py
(5.02 KB)
??
spark
??
sqlalchemy.py
(5.24 KB)
??
starlette.py
(27.93 KB)
??
starlite.py
(11.04 KB)
??
statsig.py
(1.19 KB)
??
stdlib.py
(14.01 KB)
??
strawberry.py
(17.39 KB)
??
sys_exit.py
(2.35 KB)
??
threading.py
(6.88 KB)
??
tornado.py
(10.79 KB)
??
trytond.py
(1.67 KB)
??
typer.py
(1.72 KB)
??
unleash.py
(1.02 KB)
??
unraisablehook.py
(1.65 KB)
??
wsgi.py
(15.03 KB)
Editing: socket.py
import socket import sentry_sdk from sentry_sdk._types import MYPY from sentry_sdk.consts import OP, SPANDATA from sentry_sdk.integrations import Integration from sentry_sdk.tracing_utils import has_span_streaming_enabled if MYPY: from socket import AddressFamily, SocketKind from typing import List, Optional, Tuple, Union __all__ = ["SocketIntegration"] class SocketIntegration(Integration): identifier = "socket" origin = f"auto.socket.{identifier}" @staticmethod def setup_once() -> 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: "Union[bytes, str, None]", port: "Union[bytes, str, int, None]" ) -> str: try: host = host.decode() # type: ignore except (UnicodeDecodeError, AttributeError): pass try: port = port.decode() # type: ignore except (UnicodeDecodeError, AttributeError): pass description = "%s:%s" % (host, port) # type: ignore return description def _patch_create_connection() -> None: real_create_connection = socket.create_connection def create_connection( address: "Tuple[Optional[str], int]", timeout: "Optional[float]" = socket._GLOBAL_DEFAULT_TIMEOUT, # type: ignore source_address: "Optional[Tuple[Union[bytearray, bytes, str], int]]" = None, ) -> "socket.socket": client = sentry_sdk.get_client() integration = client.get_integration(SocketIntegration) if integration is None: return real_create_connection(address, timeout, source_address) if has_span_streaming_enabled(client.options): with sentry_sdk.traces.start_span( name=_get_span_description(address[0], address[1]), attributes={ "sentry.op": OP.SOCKET_CONNECTION, "sentry.origin": SocketIntegration.origin, }, ) as span: if address[0] is not None: span.set_attribute(SPANDATA.SERVER_ADDRESS, address[0]) span.set_attribute(SPANDATA.SERVER_PORT, address[1]) return real_create_connection( address=address, timeout=timeout, source_address=source_address ) else: with sentry_sdk.start_span( op=OP.SOCKET_CONNECTION, name=_get_span_description(address[0], address[1]), origin=SocketIntegration.origin, ) 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() -> None: real_getaddrinfo = socket.getaddrinfo def getaddrinfo( host: "Union[bytes, str, None]", port: "Union[bytes, str, int, None]", family: int = 0, type: int = 0, proto: int = 0, flags: int = 0, ) -> "List[Tuple[AddressFamily, SocketKind, int, str, Union[Tuple[str, int], Tuple[str, int, int, int], Tuple[int, bytes]]]]": client = sentry_sdk.get_client() integration = client.get_integration(SocketIntegration) if integration is None: return real_getaddrinfo(host, port, family, type, proto, flags) if has_span_streaming_enabled(client.options): with sentry_sdk.traces.start_span( name=_get_span_description(host, port), attributes={ "sentry.op": OP.SOCKET_DNS, "sentry.origin": SocketIntegration.origin, }, ) as span: if isinstance(host, str): span.set_attribute(SPANDATA.SERVER_ADDRESS, host) elif isinstance(host, bytes): span.set_attribute( SPANDATA.SERVER_ADDRESS, host.decode(errors="replace") ) if isinstance(port, int): span.set_attribute(SPANDATA.SERVER_PORT, port) elif port is not None: try: span.set_attribute(SPANDATA.SERVER_PORT, int(port)) except (ValueError, TypeError): pass return real_getaddrinfo(host, port, family, type, proto, flags) else: with sentry_sdk.start_span( op=OP.SOCKET_DNS, name=_get_span_description(host, port), origin=SocketIntegration.origin, ) as span: span.set_data("host", host) span.set_data("port", port) return real_getaddrinfo(host, port, family, type, proto, flags) socket.getaddrinfo = getaddrinfo
Upload File
Create Folder