This library allows tracing HTTP requests made by the urllib library.
Usagefrom urllib import request from opentelemetry.instrumentation.urllib import URLLibInstrumentor # You can optionally pass a custom TracerProvider to # URLLibInstrumentor().instrument() URLLibInstrumentor().instrument() req = request.Request('https://postman-echo.com/post', method="POST") r = request.urlopen(req)Configuration Request/Response hooks
The urllib instrumentation supports extending tracing behavior with the help of request and response hooks. These are functions that are called back by the instrumentation right after a Span is created for a request and right before the span is finished processing a response respectively. The hooks can be configured as follows:
from http.client import HTTPResponse from urllib.request import Request from opentelemetry.instrumentation.urllib import URLLibInstrumentor from opentelemetry.trace import Span def request_hook(span: Span, request: Request): pass def response_hook(span: Span, request: Request, response: HTTPResponse): pass URLLibInstrumentor().instrument( request_hook=request_hook, response_hook=response_hook )Exclude lists
To exclude certain URLs from being tracked, set the environment variable OTEL_PYTHON_URLLIB_EXCLUDED_URLS
(or OTEL_PYTHON_EXCLUDED_URLS
as fallback) with comma delimited regexes representing which URLs to exclude.
For example,
export OTEL_PYTHON_URLLIB_EXCLUDED_URLS="client/.*/info,healthcheck"
will exclude requests such as https://site/client/123/info
and https://site/xyz/healthcheck
.
Bases: BaseInstrumentor
An instrumentor for urllib See BaseInstrumentor
Return a list of python packages with versions that the will be instrumented.
The format should be the same as used in requirements.txt or pyproject.toml.
For example, if an instrumentation instruments requests 1.x, this method should look like: :rtype: Collection
[str
]
- def instrumentation_dependencies(self) -> Collection[str]:
return [‘requests ~= 1.0’]
This will ensure that the instrumentation will only be used when the specified library is present in the environment.
uninstrument_opener a specific instance of urllib.request.OpenerDirector
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4