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