Controlar pedidos recebidos com o OpenCensus Python
Nota
O SDK Python do OpenCensus foi preterido, mas a Microsoft suporta-o até à descontinuação a 30 de setembro de 2024. Agora, recomendamos a oferta python baseada em OpenTelemetry e fornecemos orientações de migração.
O OpenCensus Python e as respetivas integrações recolhem dados de pedidos recebidos. Pode controlar os dados de pedidos recebidos enviados para as suas aplicações Web criados sobre as arquiteturas Web populares Django, Flask e Pirâmide. O Application Insights recebe os dados como requests
telemetria.
Primeiro, instrumente a sua aplicação Python com o SDK Python do OpenCensus mais recente.
Controlar aplicações django
Transfira e instale
opencensus-ext-django
a partir do PyPI. Instrumente a sua aplicação com odjango
middleware. Os pedidos recebidos enviados para a sua aplicação Django são monitorizados.Inclua
opencensus.ext.django.middleware.OpencensusMiddleware
no seusettings.py
ficheiroMIDDLEWARE
em .MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Certifique-se de que o AzureExporter está configurado corretamente em
settings.py
OPENCENSUS
. Para pedidos de URLs que não quer controlar, adicione-os 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. } }
Pode encontrar uma aplicação de exemplo do Django no repositório de exemplos do Azure Monitor OpenCensus Python.
Controlar aplicações do Flask
Transfira e instale
opencensus-ext-flask
a partir do PyPI. Instrumente a sua aplicação com oflask
middleware. Os pedidos recebidos enviados para a sua aplicação Flask são monitorizados.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)
Também pode configurar a sua aplicação
flask
através deapp.config
. Para pedidos de URLs que não quer controlar, adicione-os 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
Para executar o Flask em uWSGI num ambiente do Docker, primeiro tem de adicionar
lazy-apps = true
ao ficheiro de configuração uWSGI (uwsgi.ini). Para obter mais informações, veja a descrição do problema.
Pode encontrar uma aplicação de exemplo do Flask que monitoriza os pedidos no repositório de exemplos do Azure Monitor OpenCensus Python.
Controlar aplicações pirâmides
Transfira e instale
opencensus-ext-django
a partir do PyPI. Instrumente a sua aplicação com opyramid
tween. Os pedidos recebidos enviados para a sua aplicação Pirâmide são monitorizados.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
Pode configurar o tween
pyramid
diretamente no código. Para pedidos de URLs que não quer controlar, adicione-os 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)
Controlar aplicações FastAPI
São necessárias as seguintes dependências:
-
Numa definição de produção, recomendamos que implemente uvicorn com gunicorn.
Transfira e instale
opencensus-ext-fastapi
a partir do PyPI.pip install opencensus-ext-fastapi
Instrumente a sua aplicação com o
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!'
Execute a sua aplicação. As chamadas efetuadas à sua aplicação FastAPI devem ser registadas automaticamente. A telemetria deve ser registada diretamente no Azure Monitor.