Share via


Tenere traccia delle richieste in ingresso con OpenCensus Python

Nota

OpenCensus Python SDK è deprecato, ma Microsoft lo supporta fino al ritiro il 30 settembre 2024. È ora consigliabile usare l'offerta Python basata su OpenTelemetry e fornire indicazioni sulla migrazione.

OpenCensus Python e le relative integrazioni raccolgono i dati delle richieste in ingresso. È possibile tenere traccia dei dati delle richieste in ingresso inviati alle applicazioni Web basate sui framework Web più diffusi Django, Flask e Pyramid. Application Insights riceve i dati come requests dati di telemetria.

Prima di tutto, instrumentare l'applicazione Python con la versione più recente di OpenCensus Python SDK.

Tenere traccia delle applicazioni Django

  1. Scaricare e installare opencensus-ext-django da PyPI. Instrumentare l'applicazione con il django middleware. Vengono rilevate le richieste in ingresso inviate all'applicazione Django.

  2. Includere opencensus.ext.django.middleware.OpencensusMiddleware nel settings.py file in MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Assicurarsi che AzureExporter sia configurato correttamente in settings.py in OPENCENSUS. Per le richieste provenienti da URL che non si desidera tenere traccia, aggiungerle a 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.
        }
    }
    

È possibile trovare un'applicazione di esempio Django nel repository di esempi OpenCensus python di Monitoraggio di Azure.

Tenere traccia delle applicazioni Flask

  1. Scaricare e installare opencensus-ext-flask da PyPI. Instrumentare l'applicazione con il flask middleware. Vengono rilevate le richieste in ingresso inviate all'applicazione 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)
    
    
  2. È anche possibile configurare l'applicazione flask tramite app.config. Per le richieste provenienti da URL che non si desidera tenere traccia, aggiungerle a 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.
        }
    }
    

    Nota

    Per eseguire Flask in uWSGI in un ambiente Docker, è prima necessario aggiungere lazy-apps = true al file di configurazione uWSGI (uwsgi.ini). Per altre informazioni, vedere la descrizione del problema.

È possibile trovare un'applicazione di esempio Flask che tiene traccia delle richieste nel repository di esempi OpenCensus python di Monitoraggio di Azure.

Tenere traccia delle applicazioni Pyramid

  1. Scaricare e installare opencensus-ext-django da PyPI. Instrumentare l'applicazione con la pyramid tween. Vengono rilevate le richieste in ingresso inviate all'applicazione Pyramid.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. È possibile configurare il pyramid tween direttamente nel codice. Per le richieste provenienti da URL che non si desidera tenere traccia, aggiungerle a 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)
    

Tenere traccia delle applicazioni FastAPI

  1. Sono necessarie le dipendenze seguenti:

  2. Scaricare e installare opencensus-ext-fastapi da PyPI.

    pip install opencensus-ext-fastapi

  3. Instrumentare l'applicazione con il fastapi middleware.

    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. Eseguire l'applicazione. Le chiamate effettuate all'applicazione FastAPI devono essere rilevate automaticamente. I dati di telemetria devono essere registrati direttamente in Monitoraggio di Azure.

Passaggi successivi