aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA')
-rw-r--r--.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA126
1 files changed, 126 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA b/.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA
new file mode 100644
index 00000000..42813b4f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/opentelemetry_instrumentation_urllib3-0.52b1.dist-info/METADATA
@@ -0,0 +1,126 @@
+Metadata-Version: 2.4
+Name: opentelemetry-instrumentation-urllib3
+Version: 0.52b1
+Summary: OpenTelemetry urllib3 instrumentation
+Project-URL: Homepage, https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-urllib3
+Project-URL: Repository, https://github.com/open-telemetry/opentelemetry-python-contrib
+Author-email: OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>
+License-Expression: Apache-2.0
+License-File: LICENSE
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.8
+Requires-Dist: opentelemetry-api~=1.12
+Requires-Dist: opentelemetry-instrumentation==0.52b1
+Requires-Dist: opentelemetry-semantic-conventions==0.52b1
+Requires-Dist: opentelemetry-util-http==0.52b1
+Requires-Dist: wrapt<2.0.0,>=1.0.0
+Provides-Extra: instruments
+Requires-Dist: urllib3<3.0.0,>=1.0.0; extra == 'instruments'
+Description-Content-Type: text/x-rst
+
+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 and right before the span is finished processing a response respectively.
+The hooks can be configured as follows:
+
+.. code:: python
+
+ 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
+----------
+
+* `OpenTelemetry urllib3 Instrumentation <https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/urllib3/urllib3.html>`_
+* `OpenTelemetry Project <https://opentelemetry.io/>`_
+* `OpenTelemetry Python Examples <https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples>`_