Анализ телеметрии с помощью приложение Azure Insights

Завершено XP: 100

Панель мониторинга .NET Aspire предоставляет функциональное представление данных телеметрии, но если вы знакомы с приложение Azure Insights, вы знаете, что она обеспечивает широкий и непрерывный анализ производительности, структуры и поведения приложения.

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

В этом уроке вы узнаете, как настроить решение .NET Aspire для интеграции с приложение Azure Insights при его развертывании.

OpenTelemetry и Application Insights

Наблюдаемость — это ключевая функция облачных приложений. После развертывания команда администрирования должна знать, как они ведут себя и используют ресурсы, чтобы обеспечить своевременные ответы на запросы пользователей. Шаблоны решений .NET Aspire включают пакет OpenTelemetry и используют его для создания данных телеметрии поведения и производительности при запуске решения .NET Aspire. По умолчанию эти данные телеметрии доступны на панели мониторинга .NET Aspire.

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

Снимок экрана: сложное распределенное приложение анализируется и отображается в Application Insights.

Если вы хотите использовать Application Insights для анализа решения .NET Aspire, его можно настроить для отправки данных OpenTelemetry в Application Insights при развертывании.

Примечание

Существует два подхода к этой конфигурации. Вы можете развернуть новый экземпляр Application Insights с помощью приложения .NET Aspire или использовать существующий экземпляр. Рассмотрим эти подходы отдельно.

Подготовка Application Insights во время развертывания .NET Aspire

Этот подход подходит, если у вас еще нет экземпляра Application Insights в подписке Azure. Этот метод также можно использовать, если вы хотите, чтобы решение .NET Aspire было выделено в Application Insights.

Выполните следующие шаги:

  1. Добавьте пакет NuGet Aspire.Hosting.Azure.ApplicationInsights в проект узла приложения.

  2. В файле Program.cs узла приложения создайте ресурс Application Insights:

    C#
    var insights = builder.AddAzureApplicationInsights("AppInsights");
    
  3. Отправьте ссылку на этот ресурс в каждый проект, использующий Application Insights:

    C#
    var apiService = builder.AddProject<Projects.ApiService>("apiservice")
        .WithReference(insights);
    
    builder.AddProject<Projects.Web>("webfrontend")
        .WithReference(apiService)
        .WithReference(insights);
    

При развертывании решения .NET Aspire с помощью Visual Studio или Интерфейса командной строки разработчика Azure средство создает новый экземпляр Application Insights в подписке и подключает к ней микрослужбы .NET Aspire. По мере того как пользователи запрашивают данные телеметрии, описывающие поведение решения в портал Azure.

Подключение к существующему экземпляру Application Insights

Если у вас уже есть экземпляр Application Insights, необходимо настроить решение .NET Aspire с его расположением. Укажите это расположение, добавив строка подключения в проект узла приложения.

Вы можете найти строка подключения на странице обзора экземпляра Application Insights в портал Azure:

Снимок экрана: где найти строка подключения Application Insights в портал Azure.

В файле Program.cs узла приложения создайте ресурс строка подключения и передайте его в каждую микрослужбу:

C#
var builder = DistributedApplication.CreateBuilder(args);

var insightsConnectionString = builder.AddConnectionString(
    "myInsightsResource",
    "APPLICATIONINSIGHTS_CONNECTION_STRING");

var apiService = builder.AddProject<Projects.ApiService>("apiservice")
    .WithReference(insightsConnectionString);

builder.AddProject<Projects.Web>("webfrontend")
    .WithReference(apiService)
    .WithReference(insightsConnectionString);

builder.Build().Run();

При развертывании решения .NET Aspire средство запрашивает значение для этого строка подключения. Скопируйте и вставьте правильное значение из портал Azure.

Использование экспортера OpenTelemetry в Azure Monitor

Клиентская библиотека дистрибутива Azure Monitor в библиотеке .NET, которую можно использовать для упрощения экспорта OpenTelemetry в Application Insights. Вы можете включить его, выполнив три шага в решении .NET Aspire:

  1. Добавьте клиентную библиотеку в проект Service Defaults:

    Интерфейс командной строки.NET
    dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore --version 1.2.0
    
  2. В файле _ServiceDefaults\Extensions.cs** добавьте инструкцию using вверху:

    C#
    using Azure.Monitor.OpenTelemetry.AspNetCore
    
  3. В методе AddOpenTelemetryExporters() раскомментируйте следующие строки кода:

    C#
    if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
    {
        builder.Services.AddOpenTelemetry()
        .UseAzureMonitor();
    }
    

Подробнее


Следующий урок: Создание ресурсов Azure путем создания файлов Bicep

Предыдущий Следующая