Sledování příchozích požadavků pomocí OpenCensus Pythonu
Poznámka
Sada OpenCensus Python SDK je zastaralá, ale Microsoft ji podporuje až do vyřazení 30. září 2024. Teď doporučujeme nabídku Pythonu založenou na OpenTelemetry a poskytujeme pokyny k migraci.
OpenCensus Python a jeho integrace shromažďují příchozí data požadavků. Můžete sledovat příchozí data požadavků odesílaná do webových aplikací postavených na oblíbených webových architekturách Django, Flask a Pyramid. Application Insights přijímá data jako requests
telemetrii.
Nejprve instrumentujte aplikaci Pythonu pomocí nejnovější sady OpenCensus Python SDK.
Sledování aplikací Django
Stáhněte a nainstalujte
opencensus-ext-django
z PyPI. Instrumentujte aplikaci pomocí middlewarudjango
. Příchozí požadavky odeslané do aplikace Django se sledují.Zahrnout
opencensus.ext.django.middleware.OpencensusMiddleware
dosettings.py
souboru v částiMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Ujistěte se, že je v
settings.py
části správně nakonfigurovaný AzureExporter.OPENCENSUS
V případě požadavků z adres URL, které nechcete sledovat, přidejte je doEXCLUDELIST_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. } }
Ukázkovou aplikaci Django najdete v úložišti ukázek Pythonu OpenCensus pro Azure Monitor.
Sledování aplikací Flask
Stáhněte a nainstalujte
opencensus-ext-flask
z PyPI. Instrumentujte aplikaci pomocí middlewaruflask
. Příchozí požadavky odeslané do aplikace Flask se sledují.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)
Aplikaci můžete také nakonfigurovat
flask
prostřednictvímapp.config
. V případě požadavků z adres URL, které nechcete sledovat, přidejte je doEXCLUDELIST_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. } }
Poznámka
Pokud chcete flask spustit pod uWSGI v prostředí Dockeru, musíte nejprve přidat
lazy-apps = true
do konfiguračního souboru uWSGI (uwsgi.ini). Další informace najdete v popisu problému.
Ukázkovou aplikaci Flask, která sleduje požadavky, najdete v úložišti ukázek Pythonu OpenCensus v Azure Monitoru.
Sledování pyramidových aplikací
Stáhněte a nainstalujte
opencensus-ext-django
z PyPI. Instrumentujte aplikaci s doplněnímpyramid
. Příchozí požadavky odeslané do aplikace Pyramid se sledují.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
Doplnění můžete nakonfigurovat
pyramid
přímo v kódu. V případě požadavků z adres URL, které nechcete sledovat, přidejte je doEXCLUDELIST_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)
Sledování aplikací FastAPI
Vyžadují se následující závislosti:
-
V produkčním nastavení doporučujeme nasadit uvicorn s gunicornem.
Stáhněte a nainstalujte
opencensus-ext-fastapi
z PyPI.pip install opencensus-ext-fastapi
Instrumentujte aplikaci pomocí middlewaru
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!'
Spusťte aplikaci. Volání vaší aplikace FastAPI by se měla sledovat automaticky. Telemetrie by se měla protokolovat přímo do služby Azure Monitor.