Обучение
Схема обучения
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как включить и настроить Application Insights для приложения ASP.NET Core.
Внимание!
Мы рекомендуем дистрибутив Azure Monitor OpenTelemetry для использования в новых приложениях или у клиентов с целью включения Azure Monitor Application Insights. Дистрибутив OpenTelemetry в Azure Monitor предоставляет аналогичный функционал и опыт, как SDK Application Insights. Вы можете перейти из пакета SDK Application Insights с помощью руководств по миграции для .NET, Node.js и Python, но мы по-прежнему работаем над добавлением нескольких дополнительных функций для обратной совместимости.
Application Insights может собирать из приложения ASP.NET Core следующие данные телеметрии:
Мы используем пример приложения MVC. Если вы используете Worker Service, используйте инструкции в Application Insights для приложений Worker Service.
Доступно предложение на основе OpenTelemetry .NET. Дополнительные сведения см. в обзоре OpenTelemetry.
Примечание
Поддержка получения ключей инструментирования завершится 31 марта 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.
Примечание
Если вы хотите использовать автономный поставщик ILogger, используйте Microsoft.Extensions.Logging.ApplicationInsight.
Пакет SDK Application Insights для ASP.NET Core может отслеживать приложения независимо от того, где или как они выполняются. Если приложение работает и имеет сетевое подключение к Azure, можно собирать данные телеметрии. Мониторинг Application Insights поддерживается везде, где поддерживается .NET Core, и охватывает следующие сценарии:
В случае Visual Studio для Mac используйте инструкции, указанные в руководстве. Эта процедура поддерживается только в версии Windows Visual Studio.
Откройте проект в Visual Studio.
Перейдите в раздел Проект>Добавить телеметрию Application Insights.
Выберите Azure Application Insights>Далее.
Выберите вашу подписку и экземпляр Application Insights. Вы также можете создать новый экземпляр с помощью Создать новый. Выберите Далее.
Добавьте или подтвердите строку подключения к Application Insights. Должно быть заполнено заранее на основе вашего выбора на предыдущем шаге. Выберите Готово.
После добавления Application Insights в проект проверьте, чтобы использовался последний стабильный выпуск пакета SDK. Перейдите по пунктам Проект>Управление пакетами NuGet>Microsoft.ApplicationInsights.AspNetCore. При необходимости выберите Обновить.
Установите пакет NuGet для Application Insights SDK для ASP.NET Core.
Мы рекомендуем всегда использовать последнюю стабильную версию. Ознакомьтесь с полными сведениями о выпуске пакета SDK в репозитории GitHub с открытым исходным кодом.
В следующем примере кода показаны изменения, которые нужно внести в файл .csproj вашего проекта:
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.21.0" />
</ItemGroup>
Добавьте AddApplicationInsightsTelemetry()
в класс program.cs .
Добавьте builder.Services.AddApplicationInsightsTelemetry();
после WebApplication.CreateBuilder()
метода, как в следующем примере:
// This method gets called by the runtime. Use this method to add services to the container.
var builder = WebApplication.CreateBuilder(args);
// The following line enables Application Insights telemetry collection.
builder.Services.AddApplicationInsightsTelemetry();
// This code adds other services for your application.
builder.Services.AddMvc();
var app = builder.Build();
Добавьте строку подключения, которую можно добавить тремя способами.
(Рекомендуется) Задайте строку подключения в конфигурации.
Задайте строку подключения в appsettings.json и убедитесь, что файл конфигурации копируется в корневую папку приложения во время публикации.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
}
}
Задайте строку подключения в переменной среды APPLICATIONINSIGHTS_CONNECTION_STRING
или в файле конфигурации JSON ApplicationInsights:ConnectionString
.
Например:
SET ApplicationInsights:ConnectionString = <Copy connection string from Application Insights Resource Overview>
SET APPLICATIONINSIGHTS_CONNECTION_STRING = <Copy connection string from Application Insights Resource Overview>
APPLICATIONINSIGHTS_CONNECTION_STRING
используется в веб-приложения. Его также можно использовать во всех местах, где поддерживается этот пакет SDK.Примечание
Строка подключения, указанная в коде, имеет приоритет над переменной APPLICATIONINSIGHTS_CONNECTION_STRING
среды, которая в свою очередь имеет приоритет над другими параметрами.
Задайте строку подключения в коде.
Предоставьте строку подключения в качестве части аргумента ApplicationInsightsServiceOptions
к AddApplicationInsightsTelemetry
в классе program.cs.
Если вы хотите сохранить строку соединения в секретах пользователя ASP.NET Core или получить её от другого поставщика конфигурации, можно использовать перегрузку с параметром Microsoft.Extensions.Configuration.IConfiguration
. Примером параметра является services.AddApplicationInsightsTelemetry(Configuration);
.
В Microsoft.ApplicationInsights.AspNetCore
версии 2.15.0 и более поздних версиях вызов services.AddApplicationInsightsTelemetry()
автоматически считывает строку подключения из Microsoft.Extensions.Configuration.IConfiguration
приложения. Нет необходимости явно предоставлять IConfiguration
.
Если IConfiguration
загружает конфигурацию из нескольких поставщиков, то services.AddApplicationInsightsTelemetry
отдаёт приоритет конфигурации из appsettings.json, независимо от порядка добавления поставщиков. Используйте метод services.AddApplicationInsightsTelemetry(IConfiguration)
для чтения конфигурации из IConfiguration
без этого особого подхода для appsettings.json.
Запустите приложение и выполните запросы к нему. Теперь данные телеметрии должны передаваться в Application Insights. Пакет SDK для Application Insights автоматически собирает входящие веб-запросы в приложение, а также следующие данные телеметрии.
Динамические метрики можно использовать для быстрого проверки правильности настройки мониторинга приложений с помощью Application Insights. Данные телеметрии могут занять несколько минут, чтобы отображаться в портале Azure, но в панели динамических метрик показано использование ЦП выполняющегося процесса практически в режиме реального времени. Она также может отображать другие данные телеметрии, такие как запросы, зависимости и трассировки.
Примечание
Динамические метрики включены по умолчанию при его подключении с помощью рекомендуемых инструкций для приложений .NET.
Чтобы настроить динамические метрики вручную, выполните приведенные действия.
Установите пакет NuGet Microsoft.ApplicationInsights.PerfCounterCollector.
В следующем примере кода консольного приложения показана настройка динамических метрик:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
.Use((next) =>
{
quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
return quickPulseProcessor;
})
.Build();
var quickPulseModule = new QuickPulseTelemetryModule();
// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);
// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up live metrics.
TelemetryClient client = new TelemetryClient(config);
// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
// Send dependency and request telemetry.
// These will be shown in live metrics.
// CPU/Memory Performance counter is also shown
// automatically without any additional steps.
client.TrackDependency("My dependency", "target", "http://sample",
DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
client.TrackRequest("My Request", DateTimeOffset.Now,
TimeSpan.FromMilliseconds(230), "200", true);
Task.Delay(1000).Wait();
}
Предыдущий пример предназначен для консольного приложения, но тот же код можно использовать в любых приложениях .NET. Если для автоматического сбора данных включены другие модули телеметрии, важно убедиться, что та же конфигурация, которая используется для инициализации этих модулей, применяется для модуля живых метрик.
Конфигурация по умолчанию собирает журналы ILogger
Warning
и журналы с более важными сведениями. Дополнительные сведения см. в разделе Как настроить сбор журналов ILogger?.
Сбор зависимостей включен по умолчанию. Отслеживание зависимостей в Application Insights объясняет зависимости, которые собираются автоматически, а также содержат шаги по отслеживанию вручную.
Поддержка счетчиков производительности в приложениях ASP.NET Core ограниченна.
netstandard2.0
или более поздних версий.По умолчанию EventCounterCollectionModule
включен. Сведения о том, как настроить список собираемых счетчиков, см. в разделе Знакомство с объектами EventCounter.
HttpContext.Features.Get<RequestTelemetry>().Properties["myProp"] = someData
Предыдущих шагов достаточно, чтобы помочь начать сбор данных телеметрии на стороне сервера. Если у вашего приложения есть клиентские компоненты, выполните следующие шаги, чтобы начать сбор данных телеметрии использования с помощью внедрения скрипта загрузчика SDK JavaScript (Web) через конфигурацию.
В _ViewImports.cshtml добавьте внедрение:
@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
В _Layout.cshtml вставьте HtmlHelper
в конец <head>
раздела, но перед любым другим скриптом. Если вы хотите сообщать о любой пользовательской телеметрии JavaScript со страницы, вставьте её после этого фрагмента кода:
@Html.Raw(JavaScriptSnippet.FullScript)
</head>
В качестве альтернативы использованию FullScript
, ScriptBody
доступен, начиная с версии 2.14 SDK Application Insights для ASP.NET Core. Используйте параметр ScriptBody
, если необходимо управлять тегом <script>
для задания политики безопасности содержимого:
<script> // apply custom changes to this script tag.
@Html.Raw(JavaScriptSnippet.ScriptBody)
</script>
Имена файлов CSHTML , указанные ранее, относятся к шаблону приложения MVC по умолчанию. В конечном счете, если вы хотите правильно включить мониторинг на стороне клиента для приложения, скрипт загрузчика пакета SDK JavaScript (Web) должен отображаться в <head>
разделе каждой страницы приложения, которую вы хотите отслеживать. Добавьте скрипт загрузчика пакета SDK JavaScript (Web) в _Layout.cshtml в шаблон приложения, чтобы включить мониторинг на стороне клиента.
Если проект не включает _Layout.cshtml, вы по-прежнему можете добавить клиентский мониторинг , добавив скрипт загрузчика пакета SDK JavaScript (Web) в эквивалентный файл, который управляет <head>
всеми страницами в приложении. Кроме того, можно добавить скрипт загрузчика пакета SDK JavaScript (Web) на несколько страниц, но не рекомендуется.
Примечание
Внедрение JavaScript открывает возможности для настройки по умолчанию. Если вам требуется конфигурация помимо настройки строки подключения, необходимо удалить автоматическое внедрение, как описано, и вручную добавить набор SDK JavaScript.
Можно настроить SDK Application Insights для ASP.NET Core, чтобы изменить конфигурацию по умолчанию. Пользователи пакета SDK для Application Insights ASP.NET могут быть знакомы с изменением конфигурации, используя ApplicationInsights.config или изменяя TelemetryConfiguration.Active
. Для ASP.NET Core вносите почти все изменения конфигурации в метод ConfigureServices()
вашего класса Startup.cs, если только не указано иное. Дополнительные сведения см. в следующих разделах.
Примечание
В приложениях ASP.NET Core изменение конфигурации путем модификации TelemetryConfiguration.Active
не поддерживается.
Вы можете изменить несколько стандартных параметров, передавая ApplicationInsightsServiceOptions
в AddApplicationInsightsTelemetry
, как в следующем примере.
var builder = WebApplication.CreateBuilder(args);
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
// Disables adaptive sampling.
aiOptions.EnableAdaptiveSampling = false;
// Disables live metrics (also known as QuickPulse).
aiOptions.EnableQuickPulseMetricStream = false;
builder.Services.AddApplicationInsightsTelemetry(aiOptions);
var app = builder.Build();
В этой таблице содержится полный список параметров ApplicationInsightsServiceOptions
.
Настройка | Описание | По умолчанию |
---|---|---|
Включить Модуль Сбора Счетчиков Производительности | Включение и отключение PerformanceCounterCollectionModule . |
Истина |
Модуль телеметрии отслеживания запросов (EnableRequestTracking) | Включение и отключение RequestTrackingTelemetryModule . |
Истина |
ВключитьМодульСбораСчетчикаСобытий | Включение и отключение EventCounterCollectionModule . |
Истина |
Включить модуль телеметрии отслеживания зависимостей | Включение и отключение DependencyTrackingTelemetryModule . |
Истина |
Включить модуль телеметрии Heartbeat для служб приложений | Включение и отключение AppServicesHeartbeatTelemetryModule . |
Истина |
Включить модуль телеметрии метаданных экземпляра Azure | Включение и отключение AzureInstanceMetadataTelemetryModule . |
Истина |
Включить поток метрик QuickPulse | Включение и отключение функции LiveMetrics. | Истина |
Включить адаптивную выборку | Включение и отключение адаптивной выборки. | Истина |
Включить HeartBeat | Включение и отключение функции пульса. Он периодически (15-мин по умолчанию) отправляет пользовательскую метрику HeartbeatState с информацией о среде выполнения, такой как версия .NET и сведения о среде Azure, если это применимо. |
Истина |
ДобавитьАвтоматическиСобранныйМетрическийЭкстрактор | Включение и отключение AutoCollectedMetrics extractor . Этот обработчик телеметрии отправляет предварительно подготовленные метрики о запросах и зависимостях перед началом выборки. |
Истина |
ПараметрыЗапросов.ОтслеживаниеИсключений | Включение и отключение отчетности о необработанных исключениях модулем сбора запросов. | False в netstandard2.0 (так как исключения отслеживаются с ApplicationInsightsLoggerProvider ). Значение True в противном случае. |
МодульВключенияДиагностическойТелеметрии | Включение и отключение DiagnosticsTelemetryModule . Отключение приводит к пропускам следующих параметров: EnableHeartbeat , EnableAzureInstanceMetadataTelemetryModule и EnableAppServicesHeartbeatTelemetryModule . |
Истина |
Наиболее актуальный список см. в разделе Настраиваемые параметры в ApplicationInsightsServiceOptions
.
В пакете SDK Microsoft.ApplicationInsights.AspNetCore версии 2.15.0 и более поздних версий настройте все параметры, доступные в ApplicationInsightsServiceOptions
, в том числе ConnectionString
. Используйте экземпляр приложения IConfiguration
. Параметры должны находиться в разделе ApplicationInsights
, как показано в следующем примере. Следующий раздел из appsettings.json настраивает строку подключения и отключает адаптивную выборку и сбор данных счетчиков производительности.
{
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000",
"EnableAdaptiveSampling": false,
"EnablePerformanceCounterCollectionModule": false
}
}
Если используется builder.Services.AddApplicationInsightsTelemetry(aiOptions)
для ASP.NET Core 6.0 или services.AddApplicationInsightsTelemetry(aiOptions)
для ASP.NET Core 3.1 и более ранних версий, он переопределяет параметры из Microsoft.Extensions.Configuration.IConfiguration
.
Пакет SDK Application Insights для ASP.NET Core поддерживает как фиксированную, так и адаптивную выборку. Адаптивная выборка включена по умолчанию.
Дополнительные сведения см. в статье Настройка адаптивной выборки для приложений ASP.NET Core.
Чтобы дополнить телеметрию дополнительной информацией, используйте инициализаторы телеметрии.
Добавьте новые TelemetryInitializer
в контейнер DependencyInjection
, как показано в следующем коде. Пакет SDK автоматически принимает все TelemetryInitializer
, добавляемые в контейнер DependencyInjection
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
var app = builder.Build();
Примечание
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
работает с простыми инициализаторами. Для других builder.Services.AddSingleton(new MyCustomTelemetryInitializer() { fieldName = "myfieldName" });
требуется.
Инициализаторы телеметрии представлены по умолчанию. Чтобы удалить все или некоторые инициализаторы телеметрии, используйте следующий пример кода после вызова метода AddApplicationInsightsTelemetry()
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// Remove a specific built-in telemetry initializer
var tiToRemove = builder.Services.FirstOrDefault<ServiceDescriptor>
(t => t.ImplementationType == typeof(AspNetCoreEnvironmentTelemetryInitializer));
if (tiToRemove != null)
{
builder.Services.Remove(tiToRemove);
}
// Remove all initializers
// This requires importing namespace by using Microsoft.Extensions.DependencyInjection.Extensions;
builder.Services.RemoveAll(typeof(ITelemetryInitializer));
var app = builder.Build();
Вы можете добавить пользовательские обработчики данных телеметрии в TelemetryConfiguration
с помощью метода расширения AddApplicationInsightsTelemetryProcessor
в IServiceCollection
. Обработчики данных телеметрии используются в сценариях расширенной фильтрации. Используйте следующий пример:
var builder = WebApplication.CreateBuilder(args);
// ...
builder.Services.AddApplicationInsightsTelemetry();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();
// If you have more processors:
builder.Services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
var app = builder.Build();
Application Insights автоматически собирает данные телеметрии о конкретных рабочих нагрузках, не требуя ручного отслеживания пользователем.
Следующие модули автоматического сбора данных включены по умолчанию. Эти модули отвечают за автоматический сбор данных телеметрии. Их можно отключать или настраивать для изменения поведения по умолчанию.
RequestTrackingTelemetryModule
: Собирает RequestTelemetry из входящих веб-запросов.DependencyTrackingTelemetryModule
: собирает данные DependencyTelemetry из исходящих HTTP-вызовов и SQL-вызовов.PerformanceCollectorModule
: собирает счетчики производительности Windows (PerformanceCounters).QuickPulseTelemetryModule
: собирает данные телеметрии для отображения в панели динамических метрик.AppServicesHeartbeatTelemetryModule
: собирает пульс (которые отправляются как пользовательские метрики), о среде Служба приложений, в которой размещено приложение.AzureInstanceMetadataTelemetryModule
: собирает импульсы (которые отправляются как пользовательские метрики) о среде Azure VM, где размещено приложение.EventCounterCollectionModule
: собирает eventCounters. Этот модуль является новой функцией и доступен в пакете SDK версии 2.8.0 и более поздних версий.Чтобы настроить любой параметр по умолчанию TelemetryModule
, используйте метод расширения ConfigureTelemetryModule<T>
на IServiceCollection
, как показано в следующем примере:
using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// The following configures DependencyTrackingTelemetryModule.
// Similarly, any other default modules can be configured.
builder.Services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
{
module.EnableW3CHeadersInjection = true;
});
// The following removes all default counters from EventCounterCollectionModule, and adds a single one.
builder.Services.ConfigureTelemetryModule<EventCounterCollectionModule>((module, o) =>
{
module.Counters.Add(new EventCounterCollectionRequest("System.Runtime", "gen-0-size"));
});
// The following removes PerformanceCollectorModule to disable perf-counter collection.
// Similarly, any other default modules can be removed.
var performanceCounterService = builder.Services.FirstOrDefault<ServiceDescriptor>(t => t.ImplementationType == typeof(PerformanceCollectorModule));
if (performanceCounterService != null)
{
builder.Services.Remove(performanceCounterService);
}
var app = builder.Build();
В версии 2.12.2 и более поздних ApplicationInsightsServiceOptions
содержит простой способ отключения всех модулей по умолчанию.
Каналом телеметрии по умолчанию является ServerTelemetryChannel
. В следующем примере показано, как переопределить его.
using Microsoft.ApplicationInsights.Channel;
var builder = WebApplication.CreateBuilder(args);
// Use the following to replace the default channel with InMemoryChannel.
// This can also be applied to ServerTelemetryChannel.
builder.Services.AddSingleton(typeof(ITelemetryChannel), new InMemoryChannel() {MaxTelemetryBufferCapacity = 19898 });
builder.Services.AddApplicationInsightsTelemetry();
var app = builder.Build();
Примечание
Если вы хотите очистить буфер, см. раздел "Очистка данных". Например, может потребоваться очистить буфер, если вы используете пакет SDK в приложении, которое завершает работу.
Если вы хотите отключить сбор данных телеметрии условно и динамически, вы можете инициализировать экземпляр TelemetryConfiguration
с помощью контейнера внедрения зависимостей ASP.NET Core где угодно в вашем коде и установить для него флаг DisableTelemetry
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// any custom configuration can be done here:
builder.Services.Configure<TelemetryConfiguration>(x => x.DisableTelemetry = true);
var app = builder.Build();
Предыдущий пример кода предотвращает отправку данных телеметрии в Application Insights. Это не мешает модулям автоматического сбора собирать телеметрию. Если вы хотите удалить определенный модуль автоколлекции, см. раздел "Удалить модуль телеметрии".
В этом разделы приводятся ответы на часто задаваемые вопросы.
ASP.NET Core 3.1 больше не поддерживается корпорацией Майкрософт.
Пакет SDK Application Insights для ASP.NET Core версии 2.8.0 и Visual Studio 2019 или более поздней версии можно использовать с приложениями ASP.NET Core 3.1.
Получите экземпляр TelemetryClient
с помощью внедрения конструктора и вызовите необходимый TrackXXX()
метод на нем. Не рекомендуется создавать новые экземпляры TelemetryClient
или TelemetryConfiguration
в приложении ASP.NET Core. Одиночный экземпляр TelemetryClient
уже зарегистрирован в контейнере DependencyInjection
, который делится TelemetryConfiguration
с остальной частью телеметрии. Создайте новый экземпляр TelemetryClient
только в том случае, если требуется конфигурация, отличная от остальной телеметрии.
В следующем примере показано, как отслеживать дополнительные данные телеметрии из контроллера.
using Microsoft.ApplicationInsights;
public class HomeController : Controller
{
private TelemetryClient telemetry;
// Use constructor injection to get a TelemetryClient instance.
public HomeController(TelemetryClient telemetry)
{
this.telemetry = telemetry;
}
public IActionResult Index()
{
// Call the required TrackXXX method.
this.telemetry.TrackEvent("HomePageRequested");
return View();
}
}
Дополнительные сведения о настраиваемых отчетах данных в Application Insights см. в разделе Справочник по API настраиваемых метрик Application Insights. Аналогичный подход можно использовать для отправки пользовательских метрик в Application Insights с помощью API GetMetric.
ASP.NET Core поддерживает встроенную поддержку ведения журнала сведений о HTTP-запросе и ответе (включая текст) через ILogger
. Рекомендуется воспользоваться этим. Это может потенциально раскрыть персональные данные (PII) в телеметрии, а также привести к значительному увеличению затрат (затрат на производительность и выставление счетов Application Insights), поэтому тщательно оцените риски перед использованием этого.
По умолчанию для Application Insights используется только запись предупреждений и более серьезных журналов.
Захват сведений и менее серьезных журналов путем изменения конфигурации ведения журнала для поставщика Application Insights следующим образом.
{
"Logging": {
"LogLevel": {
"Default": "Information"
},
"ApplicationInsights": {
"LogLevel": {
"Default": "Information"
}
}
},
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
}
}
Важно отметить, что в следующем примере поставщик Application Insights не будет собирать журналы Information
. Он не фиксирует его, поскольку пакет SDK добавляет фильтр ведения журнала по умолчанию, который дает указание ApplicationInsights
записывать только журналы с уровнем серьезности Warning
и выше. Для Application Insights требуется чёткое переопределение.
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
Дополнительные сведения см. в статье, посвященной конфигурации ILogger.
Метод расширения UseApplicationInsights()
по-прежнему поддерживается, однако он отмечен как устаревший в пакете SDK для Application Insights версии 2.8.0 и последующих. Он удален в следующей основной версии пакета SDK. Чтобы включить телеметрию Application Insights, используйте AddApplicationInsightsTelemetry()
, так как она предоставляет перегрузки для управления некоторыми аспектами конфигурации. Кроме того, в приложениях ASP.NET Core 3.X services.AddApplicationInsightsTelemetry()
— единственный способ включить Application Insights.
Если пакет SDK устанавливается во время сборки, как показано в этой статье, то не нужно включать расширение Application Insights на портале Службы приложений. Если расширение установлено, оно отключается при обнаружении уже добавленного пакета SDK. Если включить Application Insights из расширения, то не потребуется устанавливать и обновлять пакет SDK. Но если вы включили Application Insights, следуя инструкциям в этой статье, то достигнете большей гибкости, поскольку:
TrackXXX()
.Да. В Application Insights Agent 2.0.0-beta1 и более поздних версиях поддерживаются приложения ASP.NET Core, размещенные в IIS.
Да. Поддержка функций для пакета SDK одинакова на всех платформах, за исключением следующих:
№ Вместо этого используйте Application Insights для приложений рабочих служб (не предназначенные для HTTP приложений) для рабочих служб.
Чтобы удалить Application Insights, необходимо удалить пакеты NuGet и ссылки из API в приложении. Пакеты NuGet можно удалить с помощью диспетчер пакетов NuGet в Visual Studio.
Примечание
Эти инструкции предназначены для удаления пакета SDK для ASP.NET Core. Если вам нужно удалить пакет SDK ASP.NET, см. статью "Как удалить пакет SDK для ASP.NET?".
При добавлении Application Insights в проект создаются файлы и добавляется код в некоторые файлы. Удаление пакетов NuGet не всегда удаляет файлы и код. Чтобы полностью удалить Application Insights, необходимо проверить и вручную удалить добавленный код или файлы вместе с любыми вызовами API, добавленными в проект.
При добавлении телеметрии Application Insights в шаблон проекта Visual Studio ASP.NET Core добавляется следующий код:
[Имя проекта].csproj
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4core</ApplicationInsightsResourceId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.12.0" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services" />
</ItemGroup>
Appsettings.json
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
}
ConnectedService.json
{
"ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
"Version": "16.0.0.0",
"GettingStartedDocument": {
"Uri": "https://go.microsoft.com/fwlink/?LinkID=798432"
}
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddApplicationInsightsTelemetry(); // This is added
}
Чтобы отключить корреляцию телеметрии в коде, см. <ExcludeComponentCorrelationHttpHeadersOnDomains>
в Application Insights для консольных приложений.
См. специальные инструкции по устранению неполадок.
SDK и агенты Application Insights отправляют телеметрические данные, чтобы они обрабатывались как REST-вызовы на наших конечных точках поглощения. Вы можете проверить подключение с веб-сервера или хост-компьютера приложения к конечным точкам службы приема, используя необработанные REST-клиенты в командах PowerShell или curl. См. Как устранить неполадки с отсутствующей телеметрией приложений в Azure Monitor Application Insights.
Читайте и вносите вклад в код.
Последние обновления и исправления ошибок см. в заметках о выпуске.
Для версии 2.12 и более поздних: пакеты SDK для .NET (включая ASP.NET, ASP.NET Core и адаптеры ведения журнала).
Обновления нашей службы также обобщают основные улучшения в Application Insights.
Обучение
Схема обучения
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!