OpenTelemetry urllib3 instrumentation
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opentelemetry_instrumentation_urllib3-0.61b0.tar.gz.
File metadata
- Download URL: opentelemetry_instrumentation_urllib3-0.61b0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f00037bc8ff813153c4b79306f55a14618c40469a69c6c03a3add29dc7e8b928
|
|
| MD5 |
0f4fc21ca3110499b16194417e015d1f
|
|
| BLAKE2b-256 |
fa807ad8da30f479c6117768e72d6f2f3f0bd3495338707d6f61de042149578a
|
File details
Details for the file opentelemetry_instrumentation_urllib3-0.61b0-py3-none-any.whl.
File metadata
- Download URL: opentelemetry_instrumentation_urllib3-0.61b0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9644f8c07870266e52f129e6226859ff3a35192555abe46fa0ef9bbbf5b6b46d
|
|
| MD5 |
543f35fba9980ca5fee8eeadb9ea6e75
|
|
| BLAKE2b-256 |
070c01359e55b9f2fb2b1d4d9e85e77773a96697207895118533f3be718a3326
|