Śledzenie żądań przychodzących za pomocą biblioteki OpenCensus Python

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

  1. Pobierz i zainstaluj z opencensus-ext-djangointerfejsu PyPI. Instrumentacja aplikacji za pomocą oprogramowania pośredniczącego django . Żądania przychodzące wysyłane do aplikacji Django są śledzone.

  2. Uwzględnij opencensus.ext.django.middleware.OpencensusMiddlewaresettings.py plik w obszarze MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Upewnij się, że usługa AzureExporter jest prawidłowo skonfigurowana w obszarze settings.pyOPENCENSUS. W przypadku żądań z adresów URL, które nie mają być śledzone, dodaj je do adresu 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.
        }
    }
    

Przykładową aplikację Django można znaleźć w repozytorium przykładów języka Python usługi Azure Monitor OpenCensus.

Śledzenie aplikacji platformy Flask

  1. Pobierz i zainstaluj z opencensus-ext-flaskinterfejsu PyPI. Instrumentacja aplikacji za pomocą oprogramowania pośredniczącego flask . Żą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)
    
    
  2. Aplikację flask można również skonfigurować za pomocą programu app.config. W przypadku żądań z adresów URL, które nie mają być śledzone, dodaj je do adresu 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.
        }
    }
    

    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

  1. Pobierz i zainstaluj z opencensus-ext-djangointerfejsu PyPI. Instrumentacja aplikacji przy użyciu tweenu pyramid . Żą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')
    
  2. 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 adresu 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)
    

Śledzenie aplikacji FastAPI

  1. Wymagane są następujące zależności:

  2. Pobierz i zainstaluj z opencensus-ext-fastapiinterfejsu PyPI.

    pip install opencensus-ext-fastapi

  3. 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!'
    
  4. Uruchom aplikację. Wywołania wykonywane do aplikacji FastAPI powinny być śledzone automatycznie. Dane telemetryczne powinny być rejestrowane bezpośrednio w usłudze Azure Monitor.

Następne kroki