Binnenkomende aanvragen bijhouden met OpenCensus Python

Notitie

OpenCensus Python SDK is afgeschaft, maar Microsoft ondersteunt dit tot de buitengebruikstelling op 30 september 2024. We raden nu de Op OpenTelemetry gebaseerde Python-aanbieding aan en bieden migratierichtlijnen.

OpenCensus Python en de bijbehorende integraties verzamelen binnenkomende aanvraaggegevens. U kunt binnenkomende aanvraaggegevens bijhouden die zijn verzonden naar uw webtoepassingen die zijn gebouwd op de populaire webframeworks Django, Flask en Pyramid. Application Insights ontvangt de gegevens als requests telemetrie.

Instrumenteer eerst uw Python-toepassing met de nieuwste OpenCensus Python SDK.

Django-toepassingen volgen

  1. Downloaden en installeren opencensus-ext-django vanuit PyPI. Instrumenteer uw toepassing met de django middleware. Binnenkomende aanvragen die naar uw Django-toepassing worden verzonden, worden bijgehouden.

  2. Neem op opencensus.ext.django.middleware.OpencensusMiddleware in uw settings.py bestand onder MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Zorg ervoor dat AzureExporter juist is geconfigureerd in uw settings.py onder OPENCENSUS. Voor aanvragen van URL's die u niet wilt bijhouden, voegt u deze toe aan 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.
        }
    }
    

U vindt een Django-voorbeeldtoepassing in de opslagplaats met Python-voorbeelden van Azure Monitor OpenCensus.

Flask-toepassingen volgen

  1. Downloaden en installeren opencensus-ext-flask vanuit PyPI. Instrumenteer uw toepassing met de flask middleware. Binnenkomende aanvragen die naar uw Flask-toepassing worden verzonden, worden bijgehouden.

    
    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. U kunt uw flask toepassing ook configureren via app.config. Voor aanvragen van URL's die u niet wilt bijhouden, voegt u deze toe aan 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.
        }
    }
    

    Notitie

    Als u Flask wilt uitvoeren onder uWSGI in een Docker-omgeving, moet u eerst toevoegen lazy-apps = true aan het uWSGI-configuratiebestand (uwsgi.ini). Zie de beschrijving van het probleem voor meer informatie.

U vindt een Flask-voorbeeldtoepassing die aanvragen bijhoudt in de opslagplaats met Python-voorbeelden van Azure Monitor OpenCensus.

Piramidetoepassingen volgen

  1. Downloaden en installeren opencensus-ext-django vanuit PyPI. Instrumenteer uw toepassing met de pyramid tween. Binnenkomende aanvragen die naar uw Pyramid-toepassing worden verzonden, worden bijgehouden.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. U kunt uw pyramid tween rechtstreeks in de code configureren. Voor aanvragen van URL's die u niet wilt bijhouden, voegt u deze toe aan 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)
    

FastAPI-toepassingen volgen

  1. De volgende afhankelijkheden zijn vereist:

  2. Downloaden en installeren opencensus-ext-fastapi vanuit PyPI.

    pip install opencensus-ext-fastapi

  3. Instrumenteer uw toepassing met de 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. Voer uw toepassing uit. Aanroepen naar uw FastAPI-toepassing moeten automatisch worden bijgehouden. Telemetrie moet rechtstreeks in Azure Monitor worden geregistreerd.

Volgende stappen