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


Клиентская библиотека OpenTelemetry для Трассировки Azure Core для Python — версия 1.0.0b9

Начало работы

Установка пакета

Установите python opentelemetry для Python с помощью pip:

pip install azure-core-tracing-opentelemetry

Теперь opentelemetry для Python можно использовать обычным образом с любыми пакетами SDK, совместимыми с трассировкой Azure-Core. К ним относятся (не исчерпывающий список), azure-storage-blob, azure-keyvault-secrets, azure-eventhub и т. д.

Основные понятия

  • Вам не нужно передавать какой-либо контекст, пакет SDK получит его за вас

  • Эти строки являются единственными, которые необходимы для включения трассировки

      from azure.core.settings import settings
      from azure.core.tracing.ext.opentelemetry_span import OpenTelemetrySpan
      settings.tracing_implementation = OpenTelemetrySpan
    

Примеры

Нет явного контекста для передачи. Просто создайте обычный трассировщик opentelemetry и вызовите любой код пакета SDK, совместимый с трассировкой Azure-Core. Это пример использования средства экспорта Azure Monitor, но вы можете использовать любой экспорт (Zipkin и т. д.).


# Declare OpenTelemetry as enabled tracing plugin for Azure SDKs
from azure.core.settings import settings
from azure.core.tracing.ext.opentelemetry_span import OpenTelemetrySpan

settings.tracing_implementation = OpenTelemetrySpan

# In the below example, we use a simple console exporter, uncomment these lines to use
# the Azure Monitor Exporter.
# Example of Azure Monitor exporter, but you can use anything OpenTelemetry supports
# from azure_monitor import AzureMonitorSpanExporter
# exporter = AzureMonitorSpanExporter(
#     instrumentation_key="uuid of the instrumentation key (see your Azure Monitor account)"
# )

# Regular open telemetry usage from here, see https://github.com/open-telemetry/opentelemetry-python
# for details
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import ConsoleSpanExporter
from opentelemetry.sdk.trace.export import SimpleSpanProcessor

# Simple console exporter
exporter = ConsoleSpanExporter()

trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)
trace.get_tracer_provider().add_span_processor(
    SimpleSpanProcessor(exporter)
)

# Example with Storage SDKs

from azure.storage.blob import BlobServiceClient

with tracer.start_as_current_span(name="MyApplication"):
    client = BlobServiceClient.from_connection_string('connectionstring')
    client.create_container('mycontainer')  # Call will be traced

Средство экспорта Azure можно найти в пакетеopentelemetry-azure-monitor-exporter

Устранение неполадок

Этот клиент вызывает исключения, определенные в Azure Core.

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

Дополнительную документацию по конфигурации OpenTelemetry можно найти на веб-сайте OpenTelemetry.

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.