opentelemetry-instrumentation-httpx
OpenTelemetry HTTPX Instrumentation
Decision gist · record as of 2026-08-14
Yes, if you use httpx or httpx2 and have an OpenTelemetry collector or backend in place. The package is actively maintained, has no known vulnerabilities, and integrates seamlessly with the OpenTelemetry ecosystem. Install it when you need distributed tracing for HTTP clients; skip it if you have no observability backend or are not using httpx.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- httpx or httpx2 must be installed separately to use the instrumentation.
- Low friction installation with a pure-Python wheel.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), which allows commercial and private use with minimal restrictions—suitable for most production environments.
last release 2026-07-16 (29 days) · last repo commit 2026-08-13 · 1,086 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 56,038,922 downloads/mo, #529 on PyPI
Alternatives
Verify before relying
pip install opentelemetry-instrumentation-httpx
import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
HTTPXClientInstrumentor().instrument()
with httpx.Client() as client:
response = client.get("https://example.com")- Whether the package works with both sync and async httpx patterns equally well in production.
- Performance overhead of instrumentation on high-throughput HTTP clients.
- Compatibility guarantees with httpx2 as it evolves from beta.
What it is and what it does
This package is an OpenTelemetry instrumentation plugin that automatically wraps httpx and httpx2 HTTP clients to emit distributed tracing spans. When enabled, every HTTP request and response is captured with method, URL, headers, and status code, allowing you to track HTTP calls across service boundaries in observability platforms like Jaeger, Datadog, or Honeycomb.
It offers two main integration patterns: global instrumentation (all clients automatically traced) or per-client instrumentation (only specific client instances traced). You can also use the transport classes directly if you prefer explicit control. The package supports request and response hooks for custom span enrichment and works with both synchronous and asynchronous httpx clients.
Use it for
- Trace HTTP calls in microservices to correlate requests across service boundaries.
- Debug slow or failing external API calls by examining span timings and error details.
- Monitor third-party integrations by capturing all outbound HTTP traffic in your observability backend.
- Instrument async HTTP clients in concurrent applications without manual span management.
- Add request/response hooks to enrich spans with custom business logic or sensitive data filtering.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you use httpx or httpx2 and have an OpenTelemetry collector or backend in place.
The package is actively maintained, has no known vulnerabilities, and integrates seamlessly with the OpenTelemetry ecosystem. Install it when you need distributed tracing for HTTP clients; skip it if you have no observability backend or are not using httpx.
Install
opentelemetry-instrumentation-httpx on PyPI
Before you install
Low friction installation with a pure-Python wheel. The package is actively maintained with a recent release (29 days old) and no known vulnerabilities. Depends on five core OpenTelemetry libraries, all standard instrumentation dependencies.
Requires Python 3.10 or later. httpx or httpx2 must be installed separately to use the instrumentation.
License in practice
Licensed under Apache-2.0 (permissive), which allows commercial and private use with minimal restrictions—suitable for most production environments.
Quickstart
pip install opentelemetry-instrumentation-httpx
import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
HTTPXClientInstrumentor().instrument()
with httpx.Client() as client:
response = client.get("https://example.com")
Verify before relying
- Whether the package works with both sync and async httpx patterns equally well in production.
- Performance overhead of instrumentation on high-throughput HTTP clients.
- Compatibility guarantees with httpx2 as it evolves from beta.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesopentelemetry-apiopentelemetry-instrumentationopentelemetry-semantic-conventionsopentelemetry-util-httpwrapt |
| Maintenance | Actively maintained 29 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 56,038,922 / month, #529 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: opentelemetry_instrumentation_httpx-0.65b0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “httpx tracing instrumentation”
- opentelemetry-instrumentation-httpxAdds distributed tracing to HTTP requests made by httpx and httpx2…
- microsoft-opentelemetryProvides a unified OpenTelemetry distribution for Python that…
- lmnr-claude-code-proxyA thin proxy server that routes Claude Code requests through Laminar…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also opentelemetry-instrumentation-urllib · opentelemetry-instrumentation-urllib3 · opentelemetry-instrumentation-falcon · opentelemetry-instrumentation-redis · opentelemetry-instrumentation-django · opentelemetry-instrumentation-pika · pytest-httpx · httpx-retries · httpx2 · httpr