Seguimiento de las solicitudes entrantes con OpenCensus para Python
Precaución
El SDK de Python de OpenCensus se retira. Se recomienda la oferta de Python basada en OpenTelemetry y proporcionar instrucciones de migración.
OpenCensus Python y sus integraciones recopilan datos de solicitud entrantes. Puede realizar un seguimiento de los datos de solicitudes entrantes enviados a las aplicaciones web creadas sobre los marcos web más populares Django, Flask y Pyramid. Application Insights recibe los datos como telemetría requests
.
En primer lugar, instrumente la aplicación con el SDK de OpenCensus para Python más reciente.
Seguimiento de aplicaciones de Django
Descargue e instale
opencensus-ext-django
desde PyPI. Instrumente la aplicación con el middleware dedjango
. Se realiza el seguimiento de las solicitudes entrantes enviadas a la aplicación Django.Incluya
opencensus.ext.django.middleware.OpencensusMiddleware
en el archivosettings.py
enMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Asegúrese de que AzureExporter está configurado correctamente en
settings.py
enOPENCENSUS
. Para las solicitudes de direcciones URL de las que no quiera realizar el seguimiento, agréguelas aEXCLUDELIST_PATHS
.OPENCENSUS = { 'TRACE': { 'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)', 'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter( connection_string="InstrumentationKey=<your-ikey-here>" )''', 'EXCLUDELIST_PATHS': ['https://example.com'], <--- These sites will not be traced if a request is sent to it. } }
Puede encontrar una aplicación de ejemplo de Django en el repositorio de ejemplos de Python de OpenCensus de Azure Monitor.
Seguimiento de aplicaciones de Flask
Descargue e instale
opencensus-ext-flask
desde PyPI. Instrumente la aplicación con el middleware deflask
. Se realiza el seguimiento de las solicitudes entrantes enviadas a la aplicación Flask.from flask import Flask from opencensus.ext.azure.trace_exporter import AzureExporter from opencensus.ext.flask.flask_middleware import FlaskMiddleware from opencensus.trace.samplers import ProbabilitySampler app = Flask(__name__) middleware = FlaskMiddleware( app, exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(rate=1.0), ) @app.route('/') def hello(): return 'Hello World!' if __name__ == '__main__': app.run(host='localhost', port=8080, threaded=True)
También puede configurar la aplicación de
flask
medianteapp.config
. Para las solicitudes de direcciones URL de las que no quiera realizar el seguimiento, agréguelas aEXCLUDELIST_PATHS
.app.config['OPENCENSUS'] = { 'TRACE': { 'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1.0)', 'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter( connection_string="InstrumentationKey=<your-ikey-here>", )''', 'EXCLUDELIST_PATHS': ['https://example.com'], <--- These sites will not be traced if a request is sent to it. } }
Nota
Para ejecutar Flask en uWSGI en un entorno de Docker, primero debe agregar
lazy-apps = true
al archivo de configuración de uWSGI (uwsgi.ini). Para obtener más información, vea la descripción del problema.
Puede encontrar una aplicación de ejemplo de Flask que realiza un seguimiento de solicitudes en el repositorio de ejemplos de Python de OpenCensus de Azure Monitor.
Seguimiento de aplicaciones de Pyramid
Descargue e instale
opencensus-ext-django
desde PyPI. Instrumente la aplicación con la interpolación depyramid
. Se realiza el seguimiento de las solicitudes entrantes enviadas a la aplicación Pyramid.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
Puede configurar la interpolación de
pyramid
directamente en el código. Para las solicitudes de direcciones URL de las que no quiera realizar el seguimiento, agréguelas aEXCLUDELIST_PATHS
.settings = { 'OPENCENSUS': { 'TRACE': { 'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1.0)', 'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter( connection_string="InstrumentationKey=<your-ikey-here>", )''', 'EXCLUDELIST_PATHS': ['https://example.com'], <--- These sites will not be traced if a request is sent to it. } } } config = Configurator(settings=settings)
Seguimiento de aplicaciones FastAPI
Se requieren las siguientes dependencias:
-
En una configuración de producción, se recomienda implementar uvicorn con gunicorn.
Descargue e instale
opencensus-ext-fastapi
desde PyPI.pip install opencensus-ext-fastapi
Instrumente la aplicación con el middleware de
fastapi
.from fastapi import FastAPI from opencensus.ext.fastapi.fastapi_middleware import FastAPIMiddleware app = FastAPI(__name__) app.add_middleware(FastAPIMiddleware) @app.get('/') def hello(): return 'Hello World!'
Ejecute la aplicación. Se debe realizar un seguimiento automático de las llamadas realizadas a la aplicación FastAPI. La telemetría se debe registrar directamente en Azure Monitor.