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.64b0.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.64b0.tar.gz.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_urllib3-0.64b0.tar.gz
Algorithm Hash digest
SHA256 647c6d1b012e14168323b18d4e60fca9a5d280764821b99ea0a5639450fbd74e
MD5 b719b4808f85b1c9708093a4a271bd49
BLAKE2b-256 30e29e6f747018f639b9ffed97f715f1eb16c95dd87ba572c880ce451a65a18f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for opentelemetry_instrumentation_urllib3-0.64b0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2bd0de75a4c3e60da3ba375139cfbc6f9f95c26f8d6ef3a54d52437d43c2f87
MD5 9a67433ddcdbcdb641cdc4e8ab539845
BLAKE2b-256 a37401536fcafb60dbb2d1fec925e849663e66596e072f4badea5e4ec9879774

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