Project: opentelemetry-util-http

Web util for OpenTelemetry

Project Details

Latest version
0.43b0
Home Page
PyPI Page
https://pypi.org/project/opentelemetry-util-http/

Project Popularity

PageRank
0.00874250870021884
Number of downloads
2430436

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/>_