Поделиться через


Отслеживание зависимостей с помощью Python для OpenCensus

Внимание

Пакет SDK для Python OpenCensus снят. Мы рекомендуем использовать предложение Python на основе OpenTelemetry и предоставить рекомендации по миграции.

Зависимость — это внешний компонент, вызываемый приложением. Данные зависимостей собираются с помощью Python для OpenCensus и различных интеграций. Затем данные отправляются в Application Insights в Azure Monitor в качестве телеметрии dependencies.

Сначала проведите инструментирование приложения Python с помощью последнего пакета SDK Python для OpenCensus.

Внутрипроцессные зависимости

Пакет SDK Python для OpenCensus в Azure Monitor позволяет отправить внутрипроцессные данные телеметрии зависимостей (сведения и логические данные, которые создаются в приложении). В обрабатываемых зависимостях поле 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.

Скачайте и установите opencensus-ext-requests из PyPI, а затем добавьте в интеграцию трассировки. Запросы, отправленные с помощью библиотеки запросов 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.

Скачайте и установите opencensus-ext-httplib из PyPI, а затем добавьте в интеграцию трассировки. Запросы, отправленные с помощью http.client для Python3 или httplib для Python 2, также будут отслеживаться.

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

Отслеживание исходящих запросов Django с помощью интеграции OpenCensus django.

Примечание.

Единственными исходящими запросами Django являются запросы к базе данных. Описание запросов в приложении Django, см. в разделе Входящие запросы.

Скачайте и установите opencensus-ext-django из PyPI и добавьте следующую строку в раздел MIDDLEWARE файла Django settings.py.

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, который использует зависимости, можно найти в репозитории примеров Python OpenCensus для Azure Monitor, который доступен здесь.

Зависимости с интеграцией mysql

Отслеживание зависимостей MYSQL с помощью интеграции OpenCensus mysql. Эта интеграция поддерживает библиотеку mysql-connector.

Скачайте и установите opencensus-ext-mysql из PyPI, а затем добавьте в код следующие строки.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Зависимости с интеграцией pymysql

Отслеживание зависимостей PyMySQL с помощью интеграции OpenCensus pymysql.

Скачайте и установите opencensus-ext-pymysql из PyPI, а затем добавьте в код следующие строки.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Зависимости с интеграцией postgresql

Отслеживание зависимостей PostgreSQL с помощью интеграции OpenCensus postgresql. Эта интеграция поддерживает библиотеку psycopg2.

Скачайте и установите opencensus-ext-postgresql из PyPI, а затем добавьте в код следующие строки.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Зависимости с интеграцией pymongo

Отслеживание зависимостей MongoDB с помощью интеграции OpenCensus pymongo. Эта интеграция поддерживает библиотеку pymongo.

Скачайте и установите opencensus-ext-pymongo из PyPI, а затем добавьте в код следующие строки.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Зависимости с интеграцией sqlalchemy

Отслеживание зависимостей SQLAlchemy с помощью интеграции OpenCensus sqlalchemy. Эта интеграция отслеживает использование пакета sqlalchemy независимо от основной базы данных.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Следующие шаги