This release is a pre-release and may not be stable for production use.
OpenTelemetry urllib3 Instrumentation
This library allows tracing HTTP requests made by the urllib3 library.
Installation
pip install opentelemetry-instrumentation-urllib3
Usage
import urllib3
from opentelemetry.instrumentation.urllib3 import URLLib3Instrumentor
def strip_query_params(url: str) -> str:
return url.split("?")[0]
URLLib3Instrumentor().instrument(
# Remove all query params from the URL attribute on the span.
url_filter=strip_query_params,
)
http = urllib3.PoolManager()
response = http.request("GET", "https://www.example.org/")
Configuration
Request/Response hooks
The urllib3 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 typing import Any
from urllib3.connectionpool import HTTPConnectionPool
from urllib3.response import HTTPResponse
from opentelemetry.instrumentation.urllib3 import RequestInfo, URLLib3Instrumentor
from opentelemetry.trace import Span
def request_hook(
span: Span,
pool: HTTPConnectionPool,
request_info: RequestInfo,
) -> Any:
pass
def response_hook(
span: Span,
pool: HTTPConnectionPool,
response: HTTPResponse,
) -> Any:
pass
URLLib3Instrumentor().instrument(
request_hook=request_hook,
response_hook=response_hook,
)
Exclude lists
To exclude certain URLs from being tracked, set the environment variable OTEL_PYTHON_URLLIB3_EXCLUDED_URLS (or OTEL_PYTHON_EXCLUDED_URLS as fallback) with comma delimited regexes representing which URLs to exclude.
For example,
export OTEL_PYTHON_URLLIB3_EXCLUDED_URLS="client/.*/info,healthcheck"
will exclude requests such as https://site/client/123/info and https://site/xyz/healthcheck.
References
Metadata
Release files for opentelemetry-instrumentation-urllib3 0.66b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opentelemetry_instrumentation_urllib3-0.66b1.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opentelemetry_instrumentation_urllib3-0.66b1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.3 kB
Release files / opentelemetry_instrumentation_urllib3-0.66b1.tar.gz
| Download URL | opentelemetry_instrumentation_urllib3-0.66b1.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
31e84a2ccfa86ca1d4f1209ea66c1f709c335348d5c487477d3843172efcc408
|
|
BLAKE2b-256 checksum How to use checksums |
08ab2dd6b3a69df31ae12714bf24fcc2772956d7cb8f9082432c9e63a37e6930
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.22
|
Release files / opentelemetry_instrumentation_urllib3-0.66b1-py3-none-any.whl
| Download URL | opentelemetry_instrumentation_urllib3-0.66b1-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e48b448fed4a127e54c584c37a443c91d80d34b9f9de324af9a00cead8b338b8
|
|
BLAKE2b-256 checksum How to use checksums |
be7f16f82bf359c28fb71ad4dc5ad386cce3483abbf1ce0ade087fe78c18daf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.22
|