OpenCensus Python を使用した受信要求の追跡
OpenCensus Python とその統合により、受信要求データが収集されます。 一般的な Web フレームワーク Django、Flask、Pyramid 上に構築された Web アプリケーションに送信された受信要求データを追跡できます。 Application Insights ではデータを requests
テレメトリとして受信します。
まず、最新の OpenCensus Python SDK を使用して Python アプリケーションをインストルメント化します。
Django アプリケーションを追跡する
PyPI から
opencensus-ext-django
をダウンロードしてインストールします。django
ミドルウェアを使用してアプリケーションをインストルメント化します。 Django アプリケーションに送信された受信要求が追跡されます。settings.py
ファイルのMIDDLEWARE
にopencensus.ext.django.middleware.OpencensusMiddleware
を含めます。MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
settings.py
のOPENCENSUS
に AzureExporter が正しく構成されていることを確認します。 追跡したくない URL からの要求については、その URL を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 サンプル アプリケーションは、Azure Monitor OpenCensus Python サンプル リポジトリ内にあります。
Flask アプリケーションを追跡する
PyPI から
opencensus-ext-flask
をダウンロードしてインストールします。flask
ミドルウェアを使用してアプリケーションをインストルメント化します。 Flask アプリケーションに送信された受信要求が追跡されます。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)
app.config
を使用してflask
アプリケーションを構成することもできます。 追跡したくない URL からの要求については、その URL を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. } }
Note
Docker 環境で uWSGI 下の Flask を実行するには、まず uWSGI 設定ファイル (uwsgi.ini) に
lazy-apps = true
を追加する必要があります。 詳細については、「問題の説明」を参照してください。
要求を追跡する Flask サンプル アプリケーションは、Azure Monitor OpenCensus Python サンプル リポジトリ内にあります。
Pyramid アプリケーションを追跡する
PyPI から
opencensus-ext-django
をダウンロードしてインストールします。pyramid
tween を使用してアプリケーションをインストルメント化します。 Pyramid アプリケーションに送信された受信要求が追跡されます。def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
コードで直接
pyramid
tween を構成できます。 追跡したくない URL からの要求については、その URL を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 アプリケーションを追跡する
次の依存関係が必要です。
-
運用設定では、gunicorn を使用して uvicorn をデプロイすることをお勧めします。
PyPI から
opencensus-ext-fastapi
をダウンロードしてインストールします。pip install opencensus-ext-fastapi
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!'
アプリケーションを実行します。 FastAPI アプリケーションに対して行われた呼び出しは、自動的に追跡されます。 テレメトリは、直接 Azure Monitor にログされます。