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

  1. Stáhněte a nainstalujte opencensus-ext-django z PyPI. Instrumentujte aplikaci pomocí middlewaru django . Příchozí požadavky odeslané do aplikace Django se sledují.

  2. Zahrnout opencensus.ext.django.middleware.OpencensusMiddleware do settings.py souboru v části MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. 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 do EXCLUDELIST_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

  1. Stáhněte a nainstalujte opencensus-ext-flask z PyPI. Instrumentujte aplikaci pomocí middlewaru flask . 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)
    
    
  2. Aplikaci můžete také nakonfigurovat flask prostřednictvím app.config. V případě požadavků z adres URL, které nechcete sledovat, přidejte je do EXCLUDELIST_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í

  1. Stáhněte a nainstalujte opencensus-ext-django z PyPI. Instrumentujte aplikaci s doplněním pyramid . 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')
    
  2. 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 do EXCLUDELIST_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

  1. Vyžadují se následující závislosti:

  2. Stáhněte a nainstalujte opencensus-ext-fastapi z PyPI.

    pip install opencensus-ext-fastapi

  3. 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!'
    
  4. 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.

Další kroky