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


Пример. Использование OpenTelemetry с Azure Monitor и Application Insights

Существует множество коммерческих систем управления производительностью приложений (APM), доступных для выбора. В Azure основной продукт мониторинга приложений — Application Insights, который является частью Azure Monitor. Одним из преимуществ встроенного продукта APM является сопоставление различных источников данных наблюдаемости. Application Insights имеет широкие возможности представления и анализа.

1. Добавление дистрибутива Application Insights

Чтобы упростить работу ASP.NET с Azure Monitor, предоставляется пакет оболочки (называемый дистрибутивом в OTel parlance), который выполняет большую часть тяжелой настройки OpenTelemetry.

Этот пример основан на пошаговом руководстве ПО OTLP. Выполните действия 1-5, чтобы создать код приложения с помощью экспортера OTLP. В этом примере мы расширим код для отправки данных в Application Insights.

Выполните тот же проект из шага 5 и добавьте следующий пакет NuGet:

<ItemGroup>
  <PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>

Примечание.

Замените версию последней доступной

2. Настройка экспортера

Добавьте следующий код инициализации OTel до builder.Build();:

if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
    otel.UseAzureMonitor();
}

UseAzureMonitor() — это магия, которая добавит общие библиотеки инструментирования и экспортеры для Application Insights. Вам просто нужно добавить пользовательские Meter и ActivitySource имена в регистрацию.

Та же инициализация OTel работает для OTLP, что и для Application Insights, разница заключается в том, какие экспортеры вы выбрали. Вы можете использовать оба приложения и выбрать между ними, определив соответствующие переменные среды.

3. Укажите строка подключения

Если вы еще не являетесь клиентом Azure, вы можете создать бесплатную учетную запись по https://azure.microsoft.com/free/адресу. Войдите на портал Azure и выберите существующий ресурс Application Insights или создайте новый с https://ms.portal.azure.com/#create/Microsoft.AppInsightsпомощью.

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

Строка подключения на портале Azure

Если вы используете службу приложение Azure, эта строка подключения автоматически передается приложению в качестве переменной среды. Для других служб или при локальном запуске необходимо передать его с помощью переменной APPLICATIONINSIGHTS_CONNECTION_STRING среды или в appsettings.json. Для локального запуска проще всего добавить значение в appsettings.development.json:

"AzureMonitor": {
    "ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}

Примечание.

Замените значение одним из экземпляров.

4. Изучение приложения в Application Insights

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

Журналы

Представление журналов App Insights

Метрики

Представление метрик App Insights

Распределенная трассировка

Представление транзакций App Insights