Śledzenie żądań przychodzących za pomocą języka Python OpenCensus
Uwaga
Zestaw SDK języka Python openCensus został wycofany. Zalecamy ofertę języka Python opartą na protokole OpenTelemetry i udostępniamy wskazówki dotyczące migracji.
OpenCensus Python i jego integracje zbierają dane żądań przychodzących. Możesz śledzić dane żądań przychodzących wysyłanych do aplikacji internetowych opartych na popularnych platformach internetowych Django, Flask i Pyramid. Usługa Application Insights odbiera dane jako requests
dane telemetryczne.
Najpierw instrumentacja aplikacji języka Python przy użyciu najnowszego zestawu OpenCensus Python SDK.
Śledzenie aplikacji Django
Pobierz i zainstaluj z
opencensus-ext-django
interfejsu PyPI. Instrumentacja aplikacji za pomocą oprogramowania pośredniczącegodjango
. Żądania przychodzące wysyłane do aplikacji Django są śledzone.Uwzględnij
opencensus.ext.django.middleware.OpencensusMiddleware
w pliku wsettings.py
obszarzeMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Upewnij się, że usługa AzureExporter jest prawidłowo skonfigurowana w obszarze
settings.py
OPENCENSUS
. W przypadku żądań z adresów URL, które nie chcesz śledzić, dodaj je do elementuEXCLUDELIST_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. } }
Przykładową aplikację Django można znaleźć w repozytorium przykładów języka Python openCensus usługi Azure Monitor.
Śledzenie aplikacji platformy Flask
Pobierz i zainstaluj z
opencensus-ext-flask
interfejsu PyPI. Instrumentacja aplikacji za pomocą oprogramowania pośredniczącegoflask
. Żądania przychodzące wysyłane do aplikacji platformy Flask są śledzone.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)
Aplikację
flask
można również skonfigurować za pomocą programuapp.config
. W przypadku żądań z adresów URL, które nie chcesz śledzić, dodaj je do elementuEXCLUDELIST_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. } }
Uwaga
Aby uruchomić platformę Flask w obszarze uWSGI w środowisku platformy Docker, należy najpierw dodać
lazy-apps = true
element do pliku konfiguracji uWSGI (uwsgi.ini). Aby uzyskać więcej informacji, zobacz opis problemu.
Przykładową aplikację platformy Flask, która śledzi żądania, znajduje się w repozytorium przykładów języka Python w usłudze Azure Monitor OpenCensus.
Śledzenie aplikacji ostrosłupowych
Pobierz i zainstaluj z
opencensus-ext-django
interfejsu PyPI. Instrumentacja aplikacji za pomocą tweenupyramid
. Żądania przychodzące wysyłane do aplikacji Pyramid są śledzone.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
Możesz skonfigurować
pyramid
tween bezpośrednio w kodzie. W przypadku żądań z adresów URL, które nie chcesz śledzić, dodaj je do elementuEXCLUDELIST_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)
Śledzenie aplikacji FastAPI
Wymagane są następujące zależności:
-
W środowisku produkcyjnym zalecamy wdrożenie uvicorn z gunicorn.
Pobierz i zainstaluj z
opencensus-ext-fastapi
interfejsu PyPI.pip install opencensus-ext-fastapi
Instrumentacja aplikacji za pomocą oprogramowania pośredniczącego
fastapi
.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!'
Uruchom aplikację. Wywołania wykonywane do aplikacji FastAPI powinny być śledzone automatycznie. Dane telemetryczne powinny być rejestrowane bezpośrednio w usłudze Azure Monitor.