73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
| 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/>`_
 |