Suivre les requêtes entrantes avec OpenCensus Python
Attention
Le Kit de développement logiciel (SDK) Python OpenCensus est mis hors service. Nous vous recommandons l’offre Python basée sur OpenTelemetry et fournissons des conseils de migration.
OpenCensus Python et ses intégrations collectent les données de requête entrantes. Vous pouvez suivre les données des requêtes entrantes envoyées à vos applications web basées sur les infrastructures web populaires Django, Flask et Pyramid. Application Insights reçoit les données en tant que données de télémétrie requests
.
Commencez par instrumenter votre application Python avec le dernier Kit de développement logiciel (SDK) OpenCensus Python.
Suivi des applications Django
Téléchargez et installez
opencensus-ext-django
à partir de PyPI. Instrumentez votre application avec l’intergicieldjango
. Les requêtes entrantes envoyées à votre application Django font l’objet d’un suivi.Incluez
opencensus.ext.django.middleware.OpencensusMiddleware
dans votre fichiersettings.py
sousMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Vérifiez qu’AzureExporter est correctement configuré dans votre fichier
settings.py
sousOPENCENSUS
. Pour les requêtes provenant d’URL que vous ne souhaitez pas suivre, ajoutez-les àEXCLUDELIST_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. } }
Vous trouverez un exemple d’application Django dans le référentiel d’exemples Python Azure Monitor OpenCensus.
Suivre les applications Flask
Téléchargez et installez
opencensus-ext-flask
à partir de PyPI. Instrumentez votre application avec l’intergicielflask
. Les requêtes entrantes envoyées à votre application Flask font l’objet d’un suivi.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)
Vous pouvez aussi configurer votre application
flask
viaapp.config
. Pour les requêtes provenant d’URL que vous ne souhaitez pas suivre, ajoutez-les àEXCLUDELIST_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. } }
Notes
Pour exécuter le flacon sous uWSGI dans un environnement Docker, vous devez d’abord ajouter
lazy-apps = true
au fichier de configuration uWSGI (uwsgi.ini). Pour plus d'informations, consultez la description du problème.
Vous trouverez un exemple d’application Flask qui suit les demandes dans le référentiel d’exemples Python Azure Monitor OpenCensus.
Suivi des applications Pyramid
Téléchargez et installez
opencensus-ext-django
à partir de PyPI. Instrumentez votre application avec le tweenpyramid
. Les requêtes entrantes envoyées à votre application Pyramid font l’objet d’un suivi.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
Vous pouvez configurer votre interpolation
pyramid
directement dans le code. Pour les requêtes provenant d’URL que vous ne souhaitez pas suivre, ajoutez-les àEXCLUDELIST_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)
Suivi des applications FastAPI
Les dépendances suivantes sont requises :
-
Dans un paramètre de production, nous vous recommandons de déployer uvicorn avec gunicorn.
Téléchargez et installez
opencensus-ext-fastapi
à partir de PyPI.pip install opencensus-ext-fastapi
Instrumentez votre application avec l’intergiciel
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!'
Exécutez votre application. Les appels passés à votre application FastAPI doivent être automatiquement suivis. Les données de télémétrie doivent être enregistrées directement dans Azure Monitor.