Suivre les requêtes entrantes avec OpenCensus Python

Notes

Le Kit de développement logiciel (SDK) Python OpenCensus est déconseillé, mais Microsoft le prend en charge jusqu’à sa mise hors service le 30 septembre 2024. Nous 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

  1. Téléchargez et installez opencensus-ext-django à partir de PyPI. Instrumentez votre application avec l’intergiciel django. Les requêtes entrantes envoyées à votre application Django font l’objet d’un suivi.

  2. Incluez opencensus.ext.django.middleware.OpencensusMiddleware dans votre fichier settings.py sous MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Vérifiez qu’AzureExporter est correctement configuré dans votre fichier settings.py sous OPENCENSUS. 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

  1. Téléchargez et installez opencensus-ext-flask à partir de PyPI. Instrumentez votre application avec l’intergiciel flask. 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)
    
    
  2. Vous pouvez aussi configurer votre application flask via app.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

  1. Téléchargez et installez opencensus-ext-django à partir de PyPI. Instrumentez votre application avec le tween pyramid. 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')
    
  2. 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

  1. Les dépendances suivantes sont requises :

  2. Téléchargez et installez opencensus-ext-fastapi à partir de PyPI.

    pip install opencensus-ext-fastapi

  3. 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!'
    
  4. 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.

Étapes suivantes