Melacak permintaan masuk dengan OpenCensus Python

Catatan

OpenCensus Python SDK tidak digunakan lagi, tetapi Microsoft mendukungnya hingga pensiun pada 30 September 2024. Kami sekarang merekomendasikan penawaran Python berbasis OpenTelemetry dan memberikan panduan migrasi.

OpenCensus Python dan integrasinya mengumpulkan data permintaan masuk. Anda dapat melacak data permintaan masuk yang dikirim ke aplikasi web Anda yang dibangun di atas kerangka kerja web populer Django, Flask, dan Pyramid. Application Insights menerima data sebagai requests telemetri.

Pertama, instrumen aplikasi Python Anda dengan OpenCensus Python SDK terbaru.

Melacak aplikasi Django

  1. Unduh dan instal opencensus-ext-django dari PyPI. Instrumen aplikasi Anda dengan django middleware. Permintaan masuk yang dikirim ke aplikasi Django Anda dilacak.

  2. Sertakan opencensus.ext.django.middleware.OpencensusMiddleware dalam file settings.py Anda di bawah MIDDLEWARE.

    MIDDLEWARE = (
        ...
        'opencensus.ext.django.middleware.OpencensusMiddleware',
        ...
    )
    
  3. Pastikan AzureExporter dikonfigurasi dengan benar di bawah OPENCENSUSAndasettings.py. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan ke 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.
        }
    }
    

Anda dapat menemukan aplikasi sampel Django di repositori sampel Azure Monitor OpenCensus Python.

Melacak aplikasi Flask

  1. Unduh dan instal opencensus-ext-flask dari PyPI. Instrumen aplikasi Anda dengan flask middleware. Permintaan masuk yang dikirim ke aplikasi Flask Anda dilacak.

    
    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. Anda juga dapat mengonfigurasi aplikasi flask Anda melalui app.config. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan ke 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.
        }
    }
    

    Catatan

    Untuk menjalankan Flask di bawah uWSGI di lingkungan Docker, Anda harus terlebih dahulu menambahkan lazy-apps = true ke file konfigurasi uWSGI (uwsgi.ini). Untuk informasi selengkapnya, lihat deskripsi masalah.

Anda dapat menemukan aplikasi sampel Flask yang melacak permintaan di repositori sampel Azure Monitor OpenCensus Python.

Melacak aplikasi Piramida

  1. Unduh dan instal opencensus-ext-django dari PyPI. Instrumen aplikasi Anda dengan pyramid tween. Permintaan masuk yang dikirim ke aplikasi Piramida Anda dilacak.

    def main(global_config, **settings):
        config = Configurator(settings=settings)
    
        config.add_tween('opencensus.ext.pyramid'
                         '.pyramid_middleware.OpenCensusTweenFactory')
    
  2. Anda dapat mengonfigurasi tween pyramid Anda langsung dalam kode. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan ke 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)
    

Melacak aplikasi FastAPI

  1. Dependensi berikut diperlukan:

  2. Unduh dan instal opencensus-ext-fastapi dari PyPI.

    pip install opencensus-ext-fastapi

  3. Instrumen aplikasi Anda dengan 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!'
    
  4. Jalankan aplikasi Anda. Panggilan yang dilakukan ke aplikasi FastAPI Anda harus dilacak secara otomatis. Telemetri harus dicatat langsung ke Azure Monitor.

Langkah berikutnya