|
2 | 2 | from sentry_sdk.consts import OP, SPANDATA |
3 | 3 | from sentry_sdk.integrations import Integration, DidNotEnable |
4 | 4 | from sentry_sdk.tracing_utils import should_propagate_trace |
5 | | -from sentry_sdk.utils import logger, parse_url |
| 5 | +from sentry_sdk.utils import ( |
| 6 | + SENSITIVE_DATA_SUBSTITUTE, |
| 7 | + capture_internal_exceptions, |
| 8 | + logger, |
| 9 | + parse_url, |
| 10 | +) |
6 | 11 |
|
7 | 12 | from sentry_sdk._types import TYPE_CHECKING |
8 | 13 |
|
@@ -42,16 +47,23 @@ def send(self, request, **kwargs): |
42 | 47 | if hub.get_integration(HttpxIntegration) is None: |
43 | 48 | return real_send(self, request, **kwargs) |
44 | 49 |
|
45 | | - parsed_url = parse_url(str(request.url), sanitize=False) |
| 50 | + parsed_url = None |
| 51 | + with capture_internal_exceptions(): |
| 52 | + parsed_url = parse_url(str(request.url), sanitize=False) |
46 | 53 |
|
47 | 54 | with hub.start_span( |
48 | 55 | op=OP.HTTP_CLIENT, |
49 | | - description="%s %s" % (request.method, parsed_url.url), |
| 56 | + description="%s %s" |
| 57 | + % ( |
| 58 | + request.method, |
| 59 | + parsed_url.url if parsed_url else SENSITIVE_DATA_SUBSTITUTE, |
| 60 | + ), |
50 | 61 | ) as span: |
51 | 62 | span.set_data(SPANDATA.HTTP_METHOD, request.method) |
52 | | - span.set_data("url", parsed_url.url) |
53 | | - span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) |
54 | | - span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) |
| 63 | + if parsed_url is not None: |
| 64 | + span.set_data("url", parsed_url.url) |
| 65 | + span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) |
| 66 | + span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) |
55 | 67 |
|
56 | 68 | if should_propagate_trace(hub, str(request.url)): |
57 | 69 | for key, value in hub.iter_trace_propagation_headers(): |
@@ -82,16 +94,23 @@ async def send(self, request, **kwargs): |
82 | 94 | if hub.get_integration(HttpxIntegration) is None: |
83 | 95 | return await real_send(self, request, **kwargs) |
84 | 96 |
|
85 | | - parsed_url = parse_url(str(request.url), sanitize=False) |
| 97 | + parsed_url = None |
| 98 | + with capture_internal_exceptions(): |
| 99 | + parsed_url = parse_url(str(request.url), sanitize=False) |
86 | 100 |
|
87 | 101 | with hub.start_span( |
88 | 102 | op=OP.HTTP_CLIENT, |
89 | | - description="%s %s" % (request.method, parsed_url.url), |
| 103 | + description="%s %s" |
| 104 | + % ( |
| 105 | + request.method, |
| 106 | + parsed_url.url if parsed_url else SENSITIVE_DATA_SUBSTITUTE, |
| 107 | + ), |
90 | 108 | ) as span: |
91 | 109 | span.set_data(SPANDATA.HTTP_METHOD, request.method) |
92 | | - span.set_data("url", parsed_url.url) |
93 | | - span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) |
94 | | - span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) |
| 110 | + if parsed_url is not None: |
| 111 | + span.set_data("url", parsed_url.url) |
| 112 | + span.set_data(SPANDATA.HTTP_QUERY, parsed_url.query) |
| 113 | + span.set_data(SPANDATA.HTTP_FRAGMENT, parsed_url.fragment) |
95 | 114 |
|
96 | 115 | if should_propagate_trace(hub, str(request.url)): |
97 | 116 | for key, value in hub.iter_trace_propagation_headers(): |
|
0 commit comments