Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pypi

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opentelemetry_instrumentation_urllib3-0.65b0.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file opentelemetry_instrumentation_urllib3-0.65b0.tar.gz.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_urllib3-0.65b0.tar.gz
Algorithm Hash digest
SHA256 6345f5c38785801e1a112895967eabec4e1076e30ecc7e9bd2af87dffc541bf9
MD5 2f1698c0c2758b8af3d10ea3ae2373fc
BLAKE2b-256 4462b0bb0b4952720640e9627eeaa185d6948ea9d1528e16f6828372b2d4a8ca

See more details on using hashes here.

File details

Details for the file opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_urllib3-0.65b0-py3-none-any.whl
Algorithm Hash digest
SHA256 696f3a59f153f23771dfadc826b03c548a2a308984987da9a094aeae23d609ca
MD5 61860d61ba9bf6b85e0124008e5912d7
BLAKE2b-256 65c5e8aed121604c378b6a196568cef166a976a274231cee2ffc7a3b5f29f14e

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page