Tenere traccia delle richieste in ingresso con OpenCensus Python
Attenzione
OpenCensus Python SDK viene ritirato. È consigliabile usare l'offerta Python basata su OpenTelemetry e fornire indicazioni sulla migrazione.
OpenCensus Python e le relative integrazioni raccolgono i dati delle richieste in ingresso. È possibile tenere traccia dei dati delle richieste in ingresso inviati alle applicazioni Web basate sui framework Web più diffusi Django, Flask e Pyramid. Application Insights riceve i dati come requests
dati di telemetria.
Prima di tutto, instrumentare l'applicazione Python con la versione più recente di OpenCensus Python SDK.
Tenere traccia delle applicazioni Django
Scaricare e installare
opencensus-ext-django
da PyPI. Instrumentare l'applicazione con ildjango
middleware. Vengono rilevate le richieste in ingresso inviate all'applicazione Django.Includere
opencensus.ext.django.middleware.OpencensusMiddleware
nel file insettings.py
MIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Assicurarsi che AzureExporter sia configurato correttamente in
settings.py
OPENCENSUS
. Per le richieste provenienti da URL che non si vuole tenere traccia, aggiungerle aEXCLUDELIST_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. } }
È possibile trovare un'applicazione di esempio Django nel repository di esempi di Python OpenCensus di Monitoraggio di Azure.
Tenere traccia delle applicazioni Flask
Scaricare e installare
opencensus-ext-flask
da PyPI. Instrumentare l'applicazione con ilflask
middleware. Vengono rilevate le richieste in ingresso inviate all'applicazione Flask.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)
È anche possibile configurare l'applicazione
flask
tramiteapp.config
. Per le richieste provenienti da URL che non si vuole tenere traccia, aggiungerle aEXCLUDELIST_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. } }
Nota
Per eseguire Flask in uWSGI in un ambiente Docker, è prima necessario aggiungere
lazy-apps = true
al file di configurazione uWSGI (uwsgi.ini). Per altre informazioni, vedere la descrizione del problema.
È possibile trovare un'applicazione di esempio Flask che tiene traccia delle richieste nel repository di esempi OpenCensus Python di Monitoraggio di Azure.
Tenere traccia delle applicazioni Pyramid
Scaricare e installare
opencensus-ext-django
da PyPI. Instrumentare l'applicazione con tweenpyramid
. Vengono rilevate le richieste in ingresso inviate all'applicazione Pyramid.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
È possibile configurare il
pyramid
tween direttamente nel codice. Per le richieste provenienti da URL che non si vuole tenere traccia, aggiungerle aEXCLUDELIST_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)
Tenere traccia delle applicazioni FastAPI
Sono necessarie le dipendenze seguenti:
-
In un'impostazione di produzione è consigliabile distribuire uvicorn con gunicorn.
Scaricare e installare
opencensus-ext-fastapi
da PyPI.pip install opencensus-ext-fastapi
Instrumentare l'applicazione con il
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!'
Eseguire l'applicazione. Le chiamate effettuate all'applicazione FastAPI devono essere rilevate automaticamente. I dati di telemetria devono essere registrati direttamente in Monitoraggio di Azure.