Instrument HTTP Requests
Learn how to manually instrument your code to use Sentry's Requests module.
As a prerequisite to setting up Requests, you’ll need to first set up performance monitoring. Once this is done, the Python SDK will automatically instrument outgoing HTTP requests made via HTTPConnection
. If that doesn't fit your use case, you can set up using custom instrumentation.
For detailed information about which data can be set, see the Requests Module developer specifications.
NOTE: Refer to HTTP Span Data Conventions for a full list of the span data attributes.
Here is an example of an instrumented function that makes HTTP requests:
Copied
from urllib.parse import urlparse
import requests
def make_request(method, url):
span = sentry_sdk.start_span(
op="http.client",
description="%s %s" % (method, url),
)
span.set_data("http.request.method", method)
parsed_url = urlparse(url)
span.set_data("url", url)
span.set_data("server.address", parsed_url.hostname)
span.set_data("server.port", parsed_url.port)
response = requests.request(method=method, url=url)
span.set_data("http.response.status_code", response.status_code)
span.set_data("http.response_content_length", response.headers["content-length"])
span.finish()
return response
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").