Dela via


Spåra inkommande begäranden med OpenCensus Python

Anteckning

OpenCensus Python SDK är inaktuellt, men Microsoft stöder det tills det upphör den 30 september 2024. Vi rekommenderar nu OpenTelemetry-baserade Python-erbjudandet och ger migreringsvägledning.

OpenCensus Python och dess integreringar samlar in inkommande begärandedata. Du kan spåra inkommande begärandedata som skickas till dina webbprogram som bygger på de populära webbramverken Django, Flask och Pyramid. Application Insights tar emot data som requests telemetri.

Instrumentera först Python-programmet med den senaste OpenCensus Python SDK: et.

Spåra Django-program

  1. Ladda ned och installera opencensus-ext-django från PyPI. Instrumentera ditt program med django mellanprogrammet. Inkommande begäranden som skickas till ditt Django-program spåras.

  2. Inkludera opencensus.ext.django.middleware.OpencensusMiddleware i settings.py filen under MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Kontrollera att AzureExporter är korrekt konfigurerat i under settings.pyOPENCENSUS. För begäranden från URL:er som du inte vill spåra lägger du till dem i 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.
        }
    }
    

Du hittar ett Django-exempelprogram i Azure Monitor OpenCensus Python-exempellagringsplatsen.

Spåra Flask-program

  1. Ladda ned och installera opencensus-ext-flask från PyPI. Instrumentera ditt program med flask mellanprogrammet. Inkommande begäranden som skickas till Flask-programmet spåras.

    
    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. Du kan också konfigurera ditt flask program via app.config. För begäranden från URL:er som du inte vill spåra lägger du till dem i 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.
        }
    }
    

    Anteckning

    Om du vill köra Flask under uWSGI i en Docker-miljö måste du först lägga till lazy-apps = true i uWSGI-konfigurationsfilen (uwsgi.ini). Mer information finns i problembeskrivningen.

Du hittar ett Flask-exempelprogram som spårar begäranden i Azure Monitor OpenCensus Python-exempellagringsplatsen.

Spåra Pyramid-program

  1. Ladda ned och installera opencensus-ext-django från PyPI. Instrumentera ditt program med interpolen pyramid . Inkommande begäranden som skickas till pyramidprogrammet spåras.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. Du kan konfigurera interpolen pyramid direkt i koden. För begäranden från URL:er som du inte vill spåra lägger du till dem i 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)
    

Spåra FastAPI-program

  1. Följande beroenden krävs:

  2. Ladda ned och installera opencensus-ext-fastapi från PyPI.

    pip install opencensus-ext-fastapi

  3. Instrumentera ditt program med fastapi mellanprogrammet.

    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. Kör programmet. Anrop som görs till ditt FastAPI-program bör spåras automatiskt. Telemetri ska loggas direkt till Azure Monitor.

Nästa steg