Spåra inkommande begäranden med OpenCensus Python
Varning
OpenCensus Python SDK har dragits tillbaka. Vi rekommenderar det 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 ditt Python-program med den senaste OpenCensus Python SDK.
Spåra Django-program
Ladda ned och installera
opencensus-ext-django
från PyPI. Instrumentera ditt program meddjango
mellanprogrammet. Inkommande begäranden som skickas till ditt Django-program spåras.Inkludera
opencensus.ext.django.middleware.OpencensusMiddleware
isettings.py
filen underMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Kontrollera att AzureExporter är korrekt konfigurerat i under
settings.py
OPENCENSUS
. För begäranden från URL:er som du inte vill spåra lägger du till dem iEXCLUDELIST_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
Ladda ned och installera
opencensus-ext-flask
från PyPI. Instrumentera ditt program medflask
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)
Du kan också konfigurera ditt
flask
program viaapp.config
. För begäranden från URL:er som du inte vill spåra lägger du till dem iEXCLUDELIST_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. } }
Kommentar
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 beskrivningen av problemet.
Du hittar ett Flask-exempelprogram som spårar begäranden i Azure Monitor OpenCensus Python-exempellagringsplatsen.
Spåra Pyramid-program
Ladda ned och installera
opencensus-ext-django
från PyPI. Instrumentera ditt program med interpolenpyramid
. 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')
Du kan konfigurera din
pyramid
tween direkt i koden. För begäranden från URL:er som du inte vill spåra lägger du till dem iEXCLUDELIST_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
Följande beroenden krävs:
-
I en produktionsinställning rekommenderar vi att du distribuerar uvicorn med gunicorn.
Ladda ned och installera
opencensus-ext-fastapi
från PyPI.pip install opencensus-ext-fastapi
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!'
Kör programmet. Anrop som görs till ditt FastAPI-program bör spåras automatiskt. Telemetri ska loggas direkt till Azure Monitor.