Bejövő kérések nyomon követése az OpenCensus Pythonnal

Megjegyzés

Az OpenCensus Python SDK elavult, de a Microsoft 2024. szeptember 30-i kivonásáig támogatja. Most az OpenTelemetry-alapú Python-ajánlatot ajánljuk, és migrálási útmutatást nyújtunk.

Az OpenCensus Python és integrációi bejövő kérésadatokat gyűjtenek. Nyomon követheti a webalkalmazásoknak küldött bejövő kérelmek adatait a django, flask és piramis népszerű webes keretrendszerek alapján. Az Application Insights telemetriaként requests fogadja az adatokat.

Először a Python-alkalmazást a legújabb OpenCensus Python SDK-val alakítsa ki.

Django-alkalmazások nyomon követése

  1. Töltse le és telepítse opencensus-ext-django a PyPI-ból. Alakítsa ki az alkalmazást a köztes django szoftverrel. A Django-alkalmazásnak küldött bejövő kérelmek nyomon lesznek követve.

  2. Adja meg opencensus.ext.django.middleware.OpencensusMiddleware a fájlban a settings.py következőt: MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Győződjön meg arról, hogy az AzureExporter megfelelően van konfigurálva a settings.py (z) alatt OPENCENSUS. A nem nyomon követni kívánt URL-címekről érkező kérések esetén adja hozzá őket a következőhöz 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.
        }
    }
    

Django-mintaalkalmazást az Azure Monitor OpenCensus Python-mintaadattárban talál.

Flask-alkalmazások nyomon követése

  1. Töltse le és telepítse opencensus-ext-flask a PyPI-ból. Alakítsa ki az alkalmazást a köztes flask szoftverrel. A Rendszer nyomon követi a Flask-alkalmazásnak küldött bejövő kérelmeket.

    
    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. Az alkalmazást a flask használatával app.configis konfigurálhatja. A nem nyomon követni kívánt URL-címekről érkező kérések esetén adja hozzá őket a következőhöz 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.
        }
    }
    

    Megjegyzés

    Ha Docker-környezetben szeretné futtatni a Flaskot uWSGI alatt, először hozzá kell adnia lazy-apps = true az uWSGI konfigurációs fájlhoz (uwsgi.ini). További információt a probléma leírásában talál.

Egy Flask-mintaalkalmazást talál, amely nyomon követi a kéréseket az Azure Monitor OpenCensus Python-minták adattárában.

Piramisalkalmazások nyomon követése

  1. Töltse le és telepítse opencensus-ext-django a PyPI-ból. A tween segítségével alakítsa ki az pyramid alkalmazást. A Piramis-alkalmazásnak küldött bejövő kérések nyomon követhetők.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. A pyramid tweent közvetlenül a kódban konfigurálhatja. A nem nyomon követni kívánt URL-címekről érkező kérések esetén adja hozzá őket a következőhöz 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)
    

FastAPI-alkalmazások nyomon követése

  1. A következő függőségekre van szükség:

  2. Töltse le és telepítse opencensus-ext-fastapi a PyPI-ból.

    pip install opencensus-ext-fastapi

  3. Alakítsa ki az alkalmazást a köztes fastapi szoftverrel.

    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. Futtassa az alkalmazást. A FastAPI-alkalmazáshoz indított hívásokat automatikusan nyomon kell követni. A telemetriát közvetlenül az Azure Monitorba kell naplózni.

Következő lépések