Nachverfolgen eingehender Anforderungen mit OpenCensus Python
Achtung
Das OpenCensus Python SDK wird eingestellt. Wir empfehlen das OpenTelemetry-basierte 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
Laden Sie
opencensus-ext-django
von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit derdjango
-Middleware. An Ihre Django-Anwendung gesendete eingehende Anforderungen werden nachverfolgt.Fügen Sie
opencensus.ext.django.middleware.OpencensusMiddleware
in Ihrer Dateisettings.py
unterMIDDLEWARE
ein.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Stellen Sie sicher, dass AzureExporter in Ihrer Datei
settings.py
unterOPENCENSUS
richtig konfiguriert ist. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unterEXCLUDELIST_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
Laden Sie
opencensus-ext-flask
von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit derflask
-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)
Sie können Ihre
flask
Anwendung auch überapp.config
konfigurieren. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unterEXCLUDELIST_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
Laden Sie
opencensus-ext-django
von PyPI herunter, und installieren Sie diese Komponente. Instrumentieren Sie Ihre Anwendung mit derpyramid
-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')
Sie können Ihr
pyramid
-Tween direkt im Code konfigurieren. Fügen Sie Anforderungen von URLs, die Sie nicht nachverfolgen möchten, unterEXCLUDELIST_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
Die folgenden Abhängigkeiten sind erforderlich:
-
Für eine Produktionseinstellung empfiehlt es sich, uvicorn mit gunicorn bereitzustellen.
Laden Sie
opencensus-ext-fastapi
von PyPI herunter, und installieren Sie diese Komponente.pip install opencensus-ext-fastapi
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!'
Führen Sie Ihre Anwendung aus. Aufrufe an Ihre FastAPI-Anwendung sollten automatisch nachverfolgt werden. Telemetriedaten sollten direkt in Azure Monitor protokolliert werden.