Включение Azure Monitor OpenTelemetry для приложений .NET, Node.js, Python и Java

В этой статье описано, как включить и настроить сбор данных с помощью OpenTelemetry в Azure Monitor Application Insights с помощью дистрибутива OpenTelemetry для Azure Monitor. OpenTelemetry является стандартом наблюдения CNCF с открытым исходным кодом; Дистрибутив OpenTelemetry Azure Monitor является распределением Microsoft этого стандарта, оптимизированного для Azure Monitor. Дистрибутив:

  • Предоставляет распределение OpenTelemetry, которое включает поддержку функций, относящихся к Azure Monitor.
  • Обеспечивает автоматический сбор телеметрии за счёт включения библиотек инструментирования OpenTelemetry для сбора трассировок, метрик, журналов и исключений.
  • Позволяет собирать пользовательские данные телеметрии.
  • Поддерживает динамические метрики для мониторинга и сбора данных телеметрии из динамических веб-приложений в рабочей среде.

Дополнительную информацию о преимуществах использования дистрибутива Azure Monitor OpenTelemetry см. в разделе Почему следует использовать дистрибутив Azure Monitor OpenTelemetry.

Чтобы узнать больше о сборе данных с помощью OpenTelemetry, ознакомьтесь с обзором Application Insights или часто задаваемыми вопросами о OpenTelemetry.

Выполните действия, описанные в этой статье, чтобы установить дистрибутив, подключить его к ресурсу Application Insights и убедиться, что потоки данных телеметрии передаются в Azure Monitor.

Состояние выпуска OpenTelemetry

Предложения OpenTelemetry доступны для приложений .NET, Node.js, Python и Java. Для получения сведений о состоянии выпуска каждой функции см. часто задаваемые вопросы.

Примечание.

Сведения о приложениях-функциях Azure см. в разделе Use OpenTelemetry с Функции Azure.

Активировать OpenTelemetry с помощью Application Insights

Выполните действия, описанные в этом разделе, для инструментирования приложения с помощью OpenTelemetry. Выберите вкладку для инструкций, относящихся к языку.

В следующей таблице перечислены пакеты и команды установки для каждого поддерживаемого языка:

Язык Package Команда установки
ASP.NET Core Azure.Monitor.OpenTelemetry.AspNetCore dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
.NET Azure.Monitor.OpenTelemetry.Exporter dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Java applicationinsights-agent-3.7.8.jar Скачать с GitHub
Node.js @azure/monitor-opentelemetry npm install @azure/monitor-opentelemetry
Python azure-monitor-opentelemetry pip install azure-monitor-opentelemetry

Примечание.

.NET охватывает несколько сценариев, включая классические ASP.NET, консольные приложения, Windows Forms (WinForms) и многое другое.

Предварительные условия

Совет

Если вы мигрируете со старых версий SDK Application Insights, ознакомьтесь с нашей документацией по миграции.

Установка клиентской библиотеки

Установите последний пакет Azure.Monitor.OpenTelemetry.AspNetCoreNuGet:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore

Изменение приложения

Импортируйте пространство имен Azure.Monitor.OpenTelemetry.AspNetCore, добавьте OpenTelemetry и настройте его для использования Azure Monitor в классе program.cs:

// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;

var builder = WebApplication.CreateBuilder(args);

// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();

var app = builder.Build();

app.Run();

Скопируйте строку подключения из ресурса Application Insights

Строка подключения уникальна и указывает, куда распределение OpenTelemetry от Azure Monitor отправляет собираемую телееметрию.

Совет

Если у вас еще нет ресурса Application Insights, следуйте этому руководству чтобы создать его. Рекомендуется создать новый ресурс, а не использовать существующий.

Чтобы скопировать строка подключения, выполните следующие действия.

  1. Перейдите в панель Overview ресурса Application Insights.
  2. Найдите свою строку подключения.
  3. Наведите указатель мыши на строку подключения и выберите значок Скопировать в буфер обмена.

Скриншот с обзором Application Insights и строкой подключения.

Вставьте строка подключения в вашу среду

Чтобы вставить строка подключения, используйте один из следующих методов:

Метод Поддерживаемые языки Рекомендуется для
Переменная среды Все Производство
Файл конфигурации (applicationinsights.json) Только Java Промышленная среда (Java)
Код ASP.NET Core, Node.js, Python Только локальные разработки и тестирования

Внимание

Рекомендуется задать строка подключения с помощью кода только в локальных средах разработки и тестирования.

В рабочей среде используйте переменную среды или файл конфигурации (только Java).

  • Задайте строку подключения Application Insights в качестве переменной среды (рекомендуется для продуктивной среды)

    Замените <Your строка подключения> в следующей команде на вашу строку подключения.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<Your connection string>
    
  • Настройте строку подключения Application Insights в файле конфигурации - Только для Java

    Создайте файл конфигурации с именем applicationinsights.jsonи поместите его в тот же каталог, что applicationinsights-agent-3.7.8.jar и в следующем содержимом:

    {
      "connectionString": "<Your connection string>"
    }
    

    Замените <Your строка подключения> в предыдущем JSON на вашу уникальную строку подключения.

  • Настройте строку подключения Application Insights в коде - Только для ASP.NET Core, Node.js и Python

    См. настройку строки подключения для примера задания строки подключения через код.

Примечание.

Если строка подключения задана в нескольких местах, она используется в следующем порядке приоритета (от самого высокого к самому низкому):

  1. Код
  2. Переменная среды
  3. Файл конфигурации

Подтвердите, что данные поступают

После настройки дистрибутива OpenTelemetry для Azure Monitor и указания строки подключения запустите приложение и откройте ресурс Application Insights на портале Azure, чтобы убедиться, что отображаются трассировки, метрики и журналы. Для отображения данных может потребоваться несколько минут.

Снимок экрана вкладки

Application Insights теперь включен для приложения. Следующие шаги являются необязательными и позволяют дополнительно настраивать.

Примечание.

В рамках инструментирования Application Insights мы собираем и отправляем диагностические данные в Microsoft. Эти данные помогают нам использовать и улучшать Application Insights. Дополнительные сведения см. в разделе "Вопросы и ответы о Application Insights".

Внимание

При наличии двух или более служб, которые выводят данные телеметрии в один и тот же ресурс Application Insights, необходимо задать имена облачных ролей, чтобы правильно представить их на схеме приложений.

Устранение неполадок, обратная связь и поддержка

Совет

Во всех статьях о дистрибутивах OpenTelemetry доступны следующие разделы.

Troubleshooting

Сведения об устранении неполадок см. в статье Устранение проблем с OpenTelemetry в .NET и Устранение неполадок с отсутствием данных телеметрии приложений в Azure Monitor Application Insights.

Отзывы о OpenTelemetry

Чтобы оставить отзыв, сделайте следующее:

Поддержка

Выберите вкладку для выбранного языка, чтобы узнать параметры поддержки.

  • Для вопросов технической поддержки Azure откройте заявку в поддержку Azure.
  • По вопросам, связанным с OpenTelemetry, обратитесь непосредственно к сообществу OpenTelemetry .NET.
  • Список открытых вопросов, связанных с экспортером Azure Monitor, можно найти на странице с проблемами на GitHub.

Следующие шаги