X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
sentry_sdk
/
integrations
/
📁
..
📄
__init__.py
(6.67 KB)
📁
__pycache__
📄
_wsgi_common.py
(4.43 KB)
📄
aiohttp.py
(11.28 KB)
📄
argv.py
(963 B)
📄
arq.py
(6.58 KB)
📄
asgi.py
(11.54 KB)
📄
asyncio.py
(2.98 KB)
📄
atexit.py
(1.8 KB)
📄
aws_lambda.py
(15.44 KB)
📄
beam.py
(5.56 KB)
📄
boto3.py
(4.44 KB)
📄
bottle.py
(6.32 KB)
📄
celery.py
(18.65 KB)
📄
chalice.py
(4.66 KB)
📄
cloud_resource_context.py
(6.6 KB)
📄
dedupe.py
(1.16 KB)
📁
django
📄
excepthook.py
(2.21 KB)
📄
executing.py
(1.99 KB)
📄
falcon.py
(7.8 KB)
📄
fastapi.py
(4.39 KB)
📄
flask.py
(7.72 KB)
📄
gcp.py
(8.02 KB)
📄
gnu_backtrace.py
(2.86 KB)
📁
grpc
📄
httpx.py
(4.89 KB)
📄
huey.py
(4.59 KB)
📄
logging.py
(8.97 KB)
📄
loguru.py
(2.98 KB)
📄
modules.py
(2.06 KB)
📁
opentelemetry
📄
pure_eval.py
(4.45 KB)
📄
pymongo.py
(5.87 KB)
📄
pyramid.py
(7.27 KB)
📄
quart.py
(7.2 KB)
📁
redis
📄
rq.py
(5.28 KB)
📄
sanic.py
(11.06 KB)
📄
serverless.py
(1.93 KB)
📄
socket.py
(2.88 KB)
📁
spark
📄
sqlalchemy.py
(4.14 KB)
📄
starlette.py
(22.67 KB)
📄
starlite.py
(9.85 KB)
📄
stdlib.py
(8.06 KB)
📄
threading.py
(2.87 KB)
📄
tornado.py
(7.17 KB)
📄
trytond.py
(1.7 KB)
📄
wsgi.py
(9.36 KB)
Editing: httpx.py
from sentry_sdk import Hub from sentry_sdk.consts import OP, SPANDATA from sentry_sdk.integrations import Integration, DidNotEnable from sentry_sdk.tracing import BAGGAGE_HEADER_NAME from sentry_sdk.tracing_utils import should_propagate_trace from sentry_sdk.utils import ( SENSITIVE_DATA_SUBSTITUTE, capture_internal_exceptions, logger, parse_url, ) from sentry_sdk._types import TYPE_CHECKING if TYPE_CHECKING: from typing import Any try: from httpx import AsyncClient, Client, Request, Response # type: ignore except ImportError: raise DidNotEnable("httpx is not installed") __all__ = ["HttpxIntegration"] class HttpxIntegration(Integration): identifier = "httpx" @staticmethod def setup_once(): # type: () -> None """ httpx has its own transport layer and can be customized when needed, so patch Client.send and AsyncClient.send to support both synchronous and async interfaces. """ _install_httpx_client() _install_httpx_async_client() def _install_httpx_client(): # type: () -> None real_send = Client.send def send(self, request, **kwargs): # type: (Client, Request, **Any) -> Response hub = Hub.current if hub.get_integration(HttpxIntegration) is None: return real_send(self, request, **kwargs) parsed_url = None with capture_internal_exceptions(): parsed_url = parse_url(str(request.url), sanitize=False) with hub.start_span( op=OP.HTTP_CLIENT, description="%s %s" % ( request.method, parsed_url.url if parsed_url else SENSITIVE_DATA_SUBSTITUTE, ), ) as span: span.set_data(SPANDATA.HTTP_METHOD, request.method) if parsed_url is not None: span.set_data("url", parsed_url.url) span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) if should_propagate_trace(hub, str(request.url)): for key, value in hub.iter_trace_propagation_headers(): logger.debug( "[Tracing] Adding `{key}` header {value} to outgoing request to {url}.".format( key=key, value=value, url=request.url ) ) if key == BAGGAGE_HEADER_NAME and request.headers.get( BAGGAGE_HEADER_NAME ): # do not overwrite any existing baggage, just append to it request.headers[key] += "," + value else: request.headers[key] = value rv = real_send(self, request, **kwargs) span.set_http_status(rv.status_code) span.set_data("reason", rv.reason_phrase) return rv Client.send = send def _install_httpx_async_client(): # type: () -> None real_send = AsyncClient.send async def send(self, request, **kwargs): # type: (AsyncClient, Request, **Any) -> Response hub = Hub.current if hub.get_integration(HttpxIntegration) is None: return await real_send(self, request, **kwargs) parsed_url = None with capture_internal_exceptions(): parsed_url = parse_url(str(request.url), sanitize=False) with hub.start_span( op=OP.HTTP_CLIENT, description="%s %s" % ( request.method, parsed_url.url if parsed_url else SENSITIVE_DATA_SUBSTITUTE, ), ) as span: span.set_data(SPANDATA.HTTP_METHOD, request.method) if parsed_url is not None: span.set_data("url", parsed_url.url) span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) if should_propagate_trace(hub, str(request.url)): for key, value in hub.iter_trace_propagation_headers(): logger.debug( "[Tracing] Adding `{key}` header {value} to outgoing request to {url}.".format( key=key, value=value, url=request.url ) ) if key == BAGGAGE_HEADER_NAME and request.headers.get( BAGGAGE_HEADER_NAME ): # do not overwrite any existing baggage, just append to it request.headers[key] += "," + value else: request.headers[key] = value rv = await real_send(self, request, **kwargs) span.set_http_status(rv.status_code) span.set_data("reason", rv.reason_phrase) return rv AsyncClient.send = send
Upload File
Create Folder