opentelemetry-python-contrib/util/opentelemetry-util-http
OpenTelemetry Bot d731d36570
Prepare release 1.32.1/0.53b1 (#3426)
2025-04-15 17:57:23 +02:00
..
src/opentelemetry/util/http Prepare release 1.32.1/0.53b1 (#3426) 2025-04-15 17:57:23 +02:00
tests Improved Test Coverage for HTTP Utility's IP Setting Functionality (#2693) 2024-07-12 15:44:44 -07:00
README.rst Remove Configuration from instrumentations (#285) 2021-02-04 08:02:37 -08:00
pyproject.toml add official support to Python 3.13 (#3134) 2024-12-31 16:08:20 +00:00
test-requirements.txt Remove pkg resources (#2871) 2024-10-19 06:49:08 -07:00

README.rst

OpenTelemetry Util HTTP
=======================

|pypi|

.. |pypi| image:: https://badge.fury.io/py/opentelemetry-util-http.svg
   :target: https://pypi.org/project/opentelemetry-util-http/


This library provides ASGI, WSGI middleware and other HTTP-related
functionality that is common to instrumented web frameworks (such as Django,
Starlette, FastAPI, etc.) to track requests timing through OpenTelemetry.

Installation
------------

::

    pip install opentelemetry-util-http


Usage (Quart)
-------------

.. code-block:: python

    from quart import Quart
    from opentelemetry.instrumentation.asgi import OpenTelemetryMiddleware

    app = Quart(__name__)
    app.asgi_app = OpenTelemetryMiddleware(app.asgi_app)

    @app.route("/")
    async def hello():
        return "Hello!"

    if __name__ == "__main__":
        app.run(debug=True)


Usage (Django 3.0)
------------------

Modify the application's ``asgi.py`` file as shown below.

.. code-block:: python

    import os
    from django.core.asgi import get_asgi_application
    from opentelemetry.instrumentation.asgi import OpenTelemetryMiddleware

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'asgi_example.settings')

    application = get_asgi_application()
    application = OpenTelemetryMiddleware(application)


Usage (Raw ASGI)
----------------

.. code-block:: python

    from opentelemetry.instrumentation.asgi import OpenTelemetryMiddleware

    app = ...  # An ASGI application.
    app = OpenTelemetryMiddleware(app)


References
----------

* `OpenTelemetry Project <https://opentelemetry.io/>`_