Śledzenie żądań przychodzących za pomocą biblioteki OpenCensus Python
Uwaga
Zestaw OpenCensus Python SDK jest przestarzały, ale firma Microsoft obsługuje go do wycofania 30 września 2024 r. Zalecamy teraz 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 w języku 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
settings.py
plik w 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 mają być śledzone, dodaj je do adresuEXCLUDELIST_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 usługi Azure Monitor OpenCensus.
Ś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 mają być śledzone, dodaj je do adresuEXCLUDELIST_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 usługi Azure Monitor OpenCensus.
Śledzenie aplikacji Ostrosłupowych
Pobierz i zainstaluj z
opencensus-ext-django
interfejsu PyPI. Instrumentacja aplikacji przy użyciu 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 mają być śledzone, dodaj je do adresuEXCLUDELIST_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 ustawieniu 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.