Nachverfolgen eingehender Anforderungen mit OpenCensus Python

Hinweis

Das OpenCensus Python-SDK ist veraltet, aber Microsoft unterstützt es bis zur Einstellung am 30. September 2024. Wir empfehlen jetzt das auf OpenTelemetry basierende Python-Angebot und bieten Migrationsanleitungen.

OpenCensus Python und seine Integrationen sammeln eingehende Anforderungsdaten. Sie können eingehende Anforderungsdaten, die an Ihre auf den gängigen Webframeworks Django, Flask und Pyramid basierenden Webanwendungen gesendet werden, nachverfolgen. Application Insights empfängt die Daten als requests-Telemetriedaten.

Instrumentieren Sie zunächst Ihre Python-Anwendung mit dem aktuellen OpenCensus Python SDK.

Django-Anwendungen nachverfolgen

  1. Laden Sie opencensus-ext-django von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit der django-Middleware. An Ihre Django-Anwendung gesendete eingehende Anforderungen werden nachverfolgt.

  2. Fügen Sie opencensus.ext.django.middleware.OpencensusMiddleware in Ihrer Datei settings.py unter MIDDLEWARE ein.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Stellen Sie sicher, dass AzureExporter in Ihrer Datei settings.py unter OPENCENSUS richtig konfiguriert ist. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unter EXCLUDELIST_PATHS hinzu.

    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.
        }
    }
    

Sie finden eine Django-Beispielanwendung in dem Beispielerepository „Azure Monitor OpenCensus Python“.

Flask-Anwendungen nachverfolgen

  1. Laden Sie opencensus-ext-flask von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit der flask-Middleware. An Ihre Flask-Anwendung gesendete eingehende Anforderungen werden nachverfolgt.

    
    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. Sie können Ihre flask Anwendung auch über app.config konfigurieren. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unter EXCLUDELIST_PATHS hinzu.

    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.
        }
    }
    

    Hinweis

    Um Flask unter uWSGI in einer Docker-Umgebung auszuführen, müssen Sie der uWSGI-Konfigurationsdatei („uwsgi.ini“) zunächst lazy-apps = true hinzufügen. Weitere Informationen finden Sie in der Problembeschreibung.

Sie finden eine Flask-Beispielanwendung, die Anforderungen nachverfolgt, im Beispielerepository „Azure Monitor OpenCensus Python“.

Pyramid-Anwendungen nachverfolgen

  1. Laden Sie opencensus-ext-django von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit der pyramid-Tween. An Ihre Pyramid-Anwendung gesendete eingehende Anforderungen werden nachverfolgt.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. Sie können Ihr pyramid-Tween direkt im Code konfigurieren. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unter EXCLUDELIST_PATHS hinzu.

    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-Anwendungen nachverfolgen

  1. Die folgenden Abhängigkeiten sind erforderlich:

  2. Laden Sie opencensus-ext-fastapi von PyPI herunter, und installieren Sie diese Komponente.

    pip install opencensus-ext-fastapi

  3. Instrumentieren Sie Ihre Anwendung mit der 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. Führen Sie Ihre Anwendung aus. Aufrufe an Ihre FastAPI-Anwendung sollten automatisch nachverfolgt werden. Telemetriedaten sollten direkt in Azure Monitor protokolliert werden.

Nächste Schritte