Отслеживание зависимостей с помощью 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'])