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
Release files for opentelemetry-instrumentation-urllib3 0.66b0
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.66b0.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opentelemetry_instrumentation_urllib3-0.66b0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.3 kB
Release files / opentelemetry_instrumentation_urllib3-0.66b0.tar.gz
| Download URL | opentelemetry_instrumentation_urllib3-0.66b0.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea51885f84ffb5fd0e491410425e606098bcc9c3bf2b68223aab5ff6f566dde9
|
|
BLAKE2b-256 checksum How to use checksums |
8961fbb593197883f34e4441a666094634c588a315e5f5d0a6861d48b90462e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / opentelemetry_instrumentation_urllib3-0.66b0-py3-none-any.whl
| Download URL | opentelemetry_instrumentation_urllib3-0.66b0-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c1e04776c67a90efea9a3347d476112e58ad4a030945f2ff1d6d967b874fe4d8
|
|
BLAKE2b-256 checksum How to use checksums |
c017d6e8e41415343ef7545fc8c9063d419c83888b6bcaf736048e9f7af7057e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|