A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/urllib/urllib3.html below:

OpenTelemetry urllib Instrumentation — OpenTelemetry Python Contrib documentation

OpenTelemetry Python Contrib OpenTelemetry urllib Instrumentation

This library allows tracing HTTP requests made by the urllib library.

Usage
from urllib import request
from opentelemetry.instrumentation.urllib import URLLibInstrumentor

# You can optionally pass a custom TracerProvider to
# URLLibInstrumentor().instrument()

URLLibInstrumentor().instrument()
req = request.Request('https://postman-echo.com/post', method="POST")
r = request.urlopen(req)
Configuration Request/Response hooks

The urllib 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 http.client import HTTPResponse
from urllib.request import Request

from opentelemetry.instrumentation.urllib import URLLibInstrumentor
from opentelemetry.trace import Span


def request_hook(span: Span, request: Request):
    pass


def response_hook(span: Span, request: Request, response: HTTPResponse):
    pass


URLLibInstrumentor().instrument(
    request_hook=request_hook,
    response_hook=response_hook
)
Exclude lists

To exclude certain URLs from being tracked, set the environment variable OTEL_PYTHON_URLLIB_EXCLUDED_URLS (or OTEL_PYTHON_EXCLUDED_URLS as fallback) with comma delimited regexes representing which URLs to exclude.

For example,

export OTEL_PYTHON_URLLIB_EXCLUDED_URLS="client/.*/info,healthcheck"

will exclude requests such as https://site/client/123/info and https://site/xyz/healthcheck.

API
class opentelemetry.instrumentation.urllib.URLLibInstrumentor(*args, **kwargs)[source]

Bases: BaseInstrumentor

An instrumentor for urllib See BaseInstrumentor

instrumentation_dependencies()[source]

Return a list of python packages with versions that the will be instrumented.

The format should be the same as used in requirements.txt or pyproject.toml.

For example, if an instrumentation instruments requests 1.x, this method should look like: :rtype: Collection[str]

def instrumentation_dependencies(self) -> Collection[str]:

return [‘requests ~= 1.0’]

This will ensure that the instrumentation will only be used when the specified library is present in the environment.

uninstrument_opener(opener)[source]

uninstrument_opener a specific instance of urllib.request.OpenerDirector


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4