OpenCensus Python을 사용하여 들어오는 요청 추적
주의
OpenCensus Python SDK가 사용 중지되었습니다. OpenTelemetry 기반 Python 제품을 권장 하고 마이그레이션 지침을 제공합니다.
OpenCensus Python 및 해당 통합은 들어오는 요청 데이터를 수집합니다. 인기 있는 웹 프레임워크 Django, Flask 및 Pyramid를 기반으로 하는 웹 애플리케이션에 전송된 들어오는 요청 데이터를 추적할 수 있습니다. Application Insights는 데이터를 requests
원격 분석으로 수신합니다.
먼저 최신 OpenCensus Python SDK를 사용하여 Python 애플리케이션을 계측합니다.
Django 애플리케이션 추적
PyPI에서
opencensus-ext-django
를 다운로드하여 설치합니다.django
미들웨어를 사용하여 애플리케이션을 계측합니다. Django 애플리케이션에 전송된 들어오는 요청이 추적됩니다.MIDDLEWARE
의settings.py
파일에opencensus.ext.django.middleware.OpencensusMiddleware
를 포함합니다.MIDDLEWARE = ( ... 'opencensus.ext.django.middleware.OpencensusMiddleware', ... )
OPENCENSUS
아래settings.py
에 AzureExporter가 올바르게 구성되어 있는지 확인합니다. 추적하지 않으려는 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. } }
Azure Monitor OpenCensus Python 샘플 리포지토리에서 Django 샘플 애플리케이션을 찾을 수 있습니다.
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의 요청은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. } }
참고 항목
Docker 환경의 uWSGI에서 Flask를 실행하려면, 먼저 uWSGI 구성 파일(uwsgi.ini)에
lazy-apps = true
을 추가해야 합니다. 자세한 내용은 이슈 설명을 참조하십시오.
Azure Monitor OpenCensus Python 샘플 리포지토리에서 요청을 추적하는 Flask 샘플 애플리케이션을 찾을 수 있습니다.
Pyramid 애플리케이션 추적
PyPI에서
opencensus-ext-django
를 다운로드하여 설치합니다.pyramid
트윈을 사용하여 애플리케이션을 계측합니다. Pyramid 애플리케이션에 전송된 들어오는 요청이 추적됩니다.def main(global_config, **settings): config = Configurator(settings=settings) config.add_tween('opencensus.ext.pyramid' '.pyramid_middleware.OpenCensusTweenFactory')
코드에서 직접
pyramid
트윈을 구성할 수 있습니다. 추적하지 않으려는 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에 직접 기록되어야 합니다.