OpenCensus Python을 사용하여 종속성 추적

참고

OpenCensus Python SDK는 더 이상 사용되지 않지만 Microsoft는 2024년 9월 30일에 지원이 사용 중지될 때까지 이를 지원합니다. 이제 OpenTelemetry 기반 Python 제품을 권장하고 마이그레이션 지침을 제공합니다.

종속성은 애플리케이션에서 호출하는 외부 구성 요소로, 종속성 데이터는 OpenCensus Python 및 다양한 통합을 사용하여 수집됩니다. 그런 다음 데이터는 dependencies 원격 분석 데이터로 Azure Monitor의 Application Insights에 전송됩니다.

먼저 최신 OpenCensus Python SDK를 사용하여 Python 애플리케이션을 계측합니다.

In Process 종속성

Azure Monitor용 OpenCensus Python SDK를 사용하면 “in-process” 종속성 원격 분석 데이터(애플리케이션 내에서 발생하는 정보 및 논리)를 보낼 수 있습니다. In Process 종속성은 type 필드를 분석의 INPROC로서 갖게 됩니다.

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))

with tracer.span(name='foo'): # <-- A dependency telemetry item will be sent for this span "foo"
    print('Hello, World!')

“요청” 통합을 사용한 종속성

OpenCensus requests 통합을 사용하여 나가는 요청을 추적합니다.

PyPI에서 opencensus-ext-requests을 다운로드하여 설치하고 추적 통합에 추가합니다. Python 요청 라이브러리를 사용하여 전송된 요청은 추적됩니다.

import requests
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

config_integration.trace_integrations(['requests'])  # <-- this line enables the requests integration

tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))

with tracer.span(name='parent'):
    response = requests.get(url='https://www.wikipedia.org/wiki/Rabbit') # <-- this request will be tracked

“httplib” 통합을 사용한 종속성

OpenCensus httplib 통합을 사용하여 나가는 요청을 추적합니다.

PyPI에서 opencensus-ext-httplib을 다운로드하여 설치하고 추적 통합에 추가합니다. Python3의 http.client 또는 Python2의 httplib을 사용하여 전송된 요청은 추적됩니다.

import http.client as httplib
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

config_integration.trace_integrations(['httplib'])
conn = httplib.HTTPConnection("www.python.org")

tracer = Tracer(
    exporter=AzureExporter(),
    sampler=ProbabilitySampler(1.0)
)

conn.request("GET", "http://www.python.org", "", {})
response = conn.getresponse()
conn.close()

“django” 통합을 사용한 종속성

OpenCensus django 통합을 사용하여 나가는 Django 요청을 추적합니다.

참고

나가는 Django 요청 중에서는 오직 데이터베이스에 대한 호출만이 추적됩니다. Django 애플리케이션에 대한 요청의 경우 들어오는 요청을 참조하세요.

PyPI에서 opencensus-ext-django를 다운로드하여 설치하고 Django settings.py 파일의 MIDDLEWARE 섹션에 다음 줄을 추가합니다.

MIDDLEWARE = [
    ...
    'opencensus.ext.django.middleware.OpencensusMiddleware',
]

추가 구성을 제공하고, 전체 참조를 위해 사용자 지정을 읽을 수 있습니다.

OPENCENSUS = {
    'TRACE': {
        'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
        'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter(
            connection_string="InstrumentationKey=<your-ikey-here>"
        )''',
    }
}

종속성을 사용하는 Django 샘플 애플리케이션은 여기에 있는 Azure Monitor OpenCensus Python 샘플 리포지토리에서 찾을 수 있습니다.

“mysql” 통합을 사용한 종속성

OpenCensus mysql 통합을 사용하여 MYSQL 종속성을 추적합니다. 해당 통합은 mysql-connector 라이브러리를 지원합니다.

PyPI에서 opencensus-ext-mysql을 다운로드하여 설치하고 코드에 다음 줄을 추가합니다.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

“pymysql” 통합을 사용한 종속성

OpenCensus pymysql 통합을 사용하여 PyMySQL 종속성을 추적합니다.

PyPI에서 opencensus-ext-pymysql을 다운로드하여 설치하고 코드에 다음 줄을 추가합니다.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

“postgresql” 통합을 사용한 종속성

OpenCensus postgresql 통합을 사용하여 PostgreSQL 종속성을 추적합니다. 해당 통합은 psycopg2 라이브러리를 지원합니다.

PyPI에서 opencensus-ext-postgresql을 다운로드하여 설치하고 코드에 다음 줄을 추가합니다.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

“pymongo” 통합을 사용한 종속성

OpenCensus pymongo 통합을 사용하여 MongoDB 종속성을 추적합니다. 해당 통합은 pymongo 라이브러리를 지원합니다.

PyPI에서 opencensus-ext-pymongo을 다운로드하여 설치하고 코드에 다음 줄을 추가합니다.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

“sqlalchemy” 통합을 사용한 종속성

OpenCensus sqlalchemy 통합을 통해 SQLAlchemy를 사용하여 종속성을 추적합니다. 해당 통합은 기본 데이터베이스에 관계없이 sqlalchemy 패키지의 사용을 추적합니다.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

다음 단계