Анализ телеметрии с помощью приложение Azure Insights
Панель мониторинга .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 для анализа решения .NET Aspire, его можно настроить для отправки данных OpenTelemetry в Application Insights при развертывании.
Примечание
Существует два подхода к этой конфигурации. Вы можете развернуть новый экземпляр Application Insights с помощью приложения .NET Aspire или использовать существующий экземпляр. Рассмотрим эти подходы отдельно.
Подготовка Application Insights во время развертывания .NET Aspire
Этот подход подходит, если у вас еще нет экземпляра Application Insights в подписке Azure. Этот метод также можно использовать, если вы хотите, чтобы решение .NET Aspire было выделено в Application Insights.
Выполните следующие шаги:
Добавьте пакет NuGet Aspire.Hosting.Azure.ApplicationInsights в проект узла приложения.
В файле Program.cs узла приложения создайте ресурс Application Insights:
C#var insights = builder.AddAzureApplicationInsights("AppInsights");
Отправьте ссылку на этот ресурс в каждый проект, использующий 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:
В файле Program.cs узла приложения создайте ресурс строка подключения и передайте его в каждую микрослужбу:
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:
Добавьте клиентную библиотеку в проект Service Defaults:
Интерфейс командной строки.NETdotnet add package Azure.Monitor.OpenTelemetry.AspNetCore --version 1.2.0
В файле _ServiceDefaults\Extensions.cs** добавьте инструкцию
using
вверху:C#using Azure.Monitor.OpenTelemetry.AspNetCore
В методе
AddOpenTelemetryExporters()
раскомментируйте следующие строки кода:C#if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"])) { builder.Services.AddOpenTelemetry() .UseAzureMonitor(); }
Подробнее
- Использование Application Insights для телеметрии .NET Aspire
- Клиентская библиотека дистрибутива Azure Monitor для .NET