opentelemetry-instrumentation-urllib3
OpenTelemetry urllib3 instrumentation
Install
opentelemetry-instrumentation-urllib3 on PyPI
pip
pip install opentelemetry-instrumentation-urllib3uv
uv add opentelemetry-instrumentation-urllib3poetry
poetry add opentelemetry-instrumentation-urllib3Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — opentelemetry-api, opentelemetry-instrumentation, opentelemetry-semantic-conventions, opentelemetry-util-http, wrapt |
| Maintenance | actively maintained — 28 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl
About opentelemetry-instrumentation-urllib3
from the package's own PyPI description — quoted content, verbatim
OpenTelemetry urllib3 Instrumentation
|pypi|
.. |pypi| image:: https://badge.fury.io/py/opentelemetry-instrumentation-urllib3.svg :target: https://pypi.org/project/opentelemetry-instrumentation-urllib3/
This library allows tracing HTTP requests made by the
urllib3 <https://urllib3.readthedocs.io/>_ library.
Installation
::
pip install opentelemetry-instrumentation-urllib3
Usage
.. code-block:: python
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...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Automatically traces HTTP requests made by urllib3, capturing them as OpenTelemetry spans with configurable filtering and request/response hooks for observability.
Low friction: pure Python wheel with five stable OpenTelemetry dependencies. Actively maintained with a recent release (28 days old) and ongoing repository activity.
Apache-2.0 permissive license allows use in most commercial and open-source projects with minimal restrictions.
Usage
pip install opentelemetry-instrumentation-urllib3
from opentelemetry.instrumentation.urllib3 import URLLib3Instrumentor
URLLib3Instrumentor().instrument()
# HTTP requests via urllib3 are now traced as OpenTelemetry spans
Requires Python 3.10 or later; requires an active OpenTelemetry tracer context to emit spans.
Verdict: A well-maintained, low-friction instrumentation library for tracing HTTP calls in OpenTelemetry deployments. Active development and no known vulnerabilities support production use; beta status (0.65b0) warrants verification of stability expectations.
Needs verification
- Whether beta version 0.65b0 is recommended for production or if a stable release is expected.
- Performance overhead of instrumentation on high-volume HTTP workloads.
- Compatibility with urllib3 versions beyond those tested by the instrumentation.
Similar packages
permissive · top 1,000 on PyPI
opentelemetry-instrumentation-urllibpermissive · top 1,000 on PyPI
opentelemetry-instrumentation-requestspermissive · top 1,000 on PyPI
lmnrpermissive · top 1,000 on PyPI
opentelemetry-semantic-conventions-aipermissive · top 1,000 on PyPI
opentelemetry-instrumentation-sqlalchemypermissive · top 1,000 on PyPI
opentelemetry-instrumentation-psycopg2permissive · top 1,000 on PyPI
urllib3permissive · top 100 on PyPI
opentelemetry-instrumentation-flaskpermissive · top 1,000 on PyPI
opentelemetry-instrumentation-aiohttp-clientpermissive · top 1,000 on PyPI