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

Примечание

Пакет SDK OpenCensus для Python не рекомендуется использовать, но корпорация Майкрософт поддерживает его до прекращения использования 30 сентября 2024 г. Теперь мы рекомендуем использовать предложение 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'])

Дальнейшие действия