Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Сведения о приложениях-функциях Azure см. в статье "Использование OpenTelemetry" с функциями Azure.
Выполните следующие действия, чтобы перенести приложения Python на Azure MonitorApplication Insightsдистрибутив OpenTelemetry.
Предупреждение
- Блог OpenCensus "Переход на OpenTelemetry" не применим к пользователям Azure Monitor.
- Оболочка OpenTelemetry OpenCensus не рекомендуется и не поддерживается корпорацией Майкрософт.
- Ниже описан единственный план миграции для клиентов Azure Monitor.
Шаг 1. Удаление библиотек OpenCensus
Удалите все библиотеки, связанные с OpenCensus, включая все пакеты Pypi, начинающиеся с opencensus-*.
pip freeze | grep opencensus | xargs pip uninstall -y
Шаг 2. Удаление OpenCensus из кода
Удалите все экземпляры пакета SDK OpenCensus и экспортера OpenCensus для Azure Monitor из кода.
Проверьте инструкции импорта, начинающиеся с opencensus, чтобы найти все интеграции, экспортеры и экземпляры API или пакета SDK OpenCensus, которые должны быть удалены.
Приведены следующие примеры инструкций импорта, которые необходимо удалить.
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation as aggregation_module
from opencensus.stats import measure as measure_module
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
from opencensus.ext.azure.log_exporter import AzureLogHandler
Шаг 3. Знакомство с API-интерфейсами и пакетами SDK для OpenTelemetry Python
В следующей документации содержатся необходимые знания об API и SDK для OpenTelemetry Python.
- Документация по OpenTelemetry для Python
- Документация по дистрибутиву Azure Monitor по конфигурации и телеметрии
Примечание.
OpenTelemetry Python и OpenCensus Python имеют различные интерфейсы API, возможности автосбора и инструкции по началу работы.
Шаг 4. Настройка дистрибутива OpenTelemetry в Azure Monitor
Следуйте инструкциям на странице начала работы , чтобы подключиться к дистрибутиву OpenTelemetry в Azure Monitor.
Изменения и ограничения
При переходе с OpenCensus на OpenTelemetry могут возникнуть следующие изменения и ограничения.
Поддержка Python < 3.7
Решения мониторинга на основе Python в OpenTelemetry поддерживают только Python 3.7 и больше, за исключением ранее поддерживаемых версий Python 2.7, 3.4, 3.5 и 3.6 из OpenCensus. Мы рекомендуем обновить пользователей, которые находятся на более старых версиях Python, так как по мере написания этого документа эти версии уже достигли конца жизни. Пользователи, которые твердо решили не обновляться, все еще могут продолжать использовать решения OpenTelemetry, но могут столкнуться с неожиданным или кризисным поведением, которое не поддерживается. В любом случае последняя поддерживаемая версия opencensus-ext-azure всегда существует и по-прежнему работает для этих версий, но новые выпуски не создаются для этого проекта.
Конфигурации
OpenCensus Python предоставил некоторые параметры конфигурации , связанные с коллекцией и экспортом телеметрии. Вы достигаете те же конфигурации и даже больше, используя API и SDK OpenTelemetry Python. Дистрибутив Python для OpenTelemetry в Azure Monitor представляет собой универсальное решение для самых распространенных потребностей в мониторинге ваших приложений на Python. Так как дистрибутив инкапсулирует API OpenTelemetry/SDk, некоторые конфигурации для более редких вариантов использования в настоящее время не поддерживаются для дистрибутива. Вместо этого вы можете подключиться к экспортеру Azure Monitor OpenTelemetry, который с API и SDK OpenTelemetry должен соответствовать вашим потребностям в мониторинге. Некоторые из этих конфигураций включают:
- Пользовательские распространители
- Пользовательские сэмплеры
- Добавление дополнительных процессоров для обработки интервалов, журналов и модулей чтения метрик.
Связь с функциями Azure
Чтобы предоставить возможности распределенной трассировки для приложений Python, которые вызывают другие приложения Python в функции Azure, пакет opencensus-extension-azure-functions был предоставлен, чтобы разрешить подключенный распределенный граф.
В настоящее время решения OpenTelemetry для Azure Monitor не поддерживают этот сценарий. В качестве обходного решения можно вручную распространить контекст трассировки в приложении функций Azure, как показано в следующем примере.
from opentelemetry.context import attach, detach
from opentelemetry.trace.propagation.tracecontext import \
TraceContextTextMapPropagator
# Context parameter is provided for the body of the function
def main(req, context):
functions_current_context = {
"traceparent": context.trace_context.Traceparent,
"tracestate": context.trace_context.Tracestate
}
parent_context = TraceContextTextMapPropagator().extract(
carrier=functions_current_context
)
token = attach(parent_context)
...
# Function logic
...
detach(token)
Расширения и экспортёры
Пакет SDK OpenCensus предлагает способы сбора и экспорта данных телеметрии с помощью интеграции OpenCensus и экспортеров соответственно. В OpenTelemetry интеграция теперь называется инструментированием, в то время как экспортеры остались с той же терминологией. Инструментирование и экспортеры OpenTelemetry Python являются супермножеством того, что было предоставлено в OpenCensus, поэтому с точки зрения охвата библиотек и их функциональности библиотеки OpenTelemetry представляют собой прямое улучшение. Что касается дистрибутива Azure Monitor OpenTelemetry, он содержит некоторые из популярных инструментов OpenTelemetry для Python по умолчанию, поэтому дополнительный код не требуется. Майкрософт полностью поддерживает эти инструменты.
Что касается других инструментов OpenTelemetry Python, которые не включены в список, пользователи по-прежнему могут вручную добавлять их. Однако важно отметить, что стабильность и поведение не гарантированы или поддерживаются в этих случаях. Поэтому используйте их по своему усмотрению.
Если вы хотите предложить библиотеку инструментирования сообщества для включения в наш дистрибутив, опубликуйте или поддержите идею в нашем сообществе отзывов. Для экспортеров дистрибутив Azure Monitor OpenTelemetry поставляется вместе с экспортером Azure Monitor OpenTelemetry . Если вы также хотите использовать других экспортеров, их можно использовать с дистрибутивом, как показано в этом примере.
Процессоры телеметрии
В мире OpenTelemetry нет концепции TelemetryProcessors, но существуют API и классы, которые можно использовать для воспроизведения такого же поведения.
Настройка имени облачной роли и экземпляра облачной роли
Следуйте инструкциям здесь, чтобы задать имя облачной роли и экземпляр этой роли для вашей телеметрии. Дистрибутив Azure Monitor OpenTelemetry автоматически извлекает значения из переменных среды и заполняет соответствующие поля.
Изменение диапазонов с помощью SpanProcessors
Скоро появится.
Изменение метрик с помощью представлений
Скоро появится.
Счетчики производительности
Экспортер OpenCensus Azure Monitor автоматически собирает системные метрики и метрики производительности, называемые счетчиками производительности. Эти метрики отображаются в performanceCounters экземпляре Application Insights. В OpenTelemetry мы больше не отправляем эти метрики напрямую performanceCounters. Метрики, связанные с входящими и исходящими запросами, можно найти в стандартных метриках. Если вы хотите, чтобы OpenTelemetry использовала системные метрики, связанные с системой, можно использовать инструментирование экспериментальных системных метрик, внесенных сообществом Python OpenTelemetry. Этот пакет является экспериментальным и официально не поддерживается корпорацией Майкрософт.
Поддержка
Для просмотра шагов по устранению неполадок, вариантов поддержки или обратной связи по OpenTelemetry см. в статье "Устранение неполадок, поддержка и обратная связь для Azure Monitor Application Insights".