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
Unduh dan instal
opencensus-ext-django
dari PyPI. Instrumen aplikasi Anda dengandjango
middleware. Permintaan masuk yang dikirim ke aplikasi Django Anda dilacak.Sertakan
opencensus.ext.django.middleware.OpencensusMiddleware
dalam filesettings.py
Anda di bawahMIDDLEWARE
.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
Pastikan AzureExporter dikonfigurasi dengan benar di bawah
OPENCENSUS
Andasettings.py
. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan keEXCLUDELIST_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
Unduh dan instal
opencensus-ext-flask
dari PyPI. Instrumen aplikasi Anda denganflask
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)
Anda juga dapat mengonfigurasi aplikasi
flask
Anda melaluiapp.config
. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan keEXCLUDELIST_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
Unduh dan instal
opencensus-ext-django
dari PyPI. Instrumen aplikasi Anda denganpyramid
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')
Anda dapat mengonfigurasi tween
pyramid
Anda langsung dalam kode. Untuk permintaan dari URL yang tidak ingin Anda lacak, tambahkan keEXCLUDELIST_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
Dependensi berikut diperlukan:
-
Dalam pengaturan produksi, sebaiknya Anda menyebarkan uvicorn dengan gunicorn.
Unduh dan instal
opencensus-ext-fastapi
dari PyPI.pip install opencensus-ext-fastapi
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!'
Jalankan aplikasi Anda. Panggilan yang dilakukan ke aplikasi FastAPI Anda harus dilacak secara otomatis. Telemetri harus dicatat langsung ke Azure Monitor.