This release is a pre-release and may not be stable for production use.
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
Release files for opentelemetry-instrumentation-urllib3 0.65b0
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.65b0.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / opentelemetry_instrumentation_urllib3-0.65b0.tar.gz
| Download URL | opentelemetry_instrumentation_urllib3-0.65b0.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6345f5c38785801e1a112895967eabec4e1076e30ecc7e9bd2af87dffc541bf9
|
|
BLAKE2b-256 checksum How to use checksums |
4462b0bb0b4952720640e9627eeaa185d6948ea9d1528e16f6828372b2d4a8ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl
| Download URL | opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
696f3a59f153f23771dfadc826b03c548a2a308984987da9a094aeae23d609ca
|
|
BLAKE2b-256 checksum How to use checksums |
65c5e8aed121604c378b6a196568cef166a976a274231cee2ffc7a3b5f29f14e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|