Sdílet prostřednictvím


Application Insights pro aplikace ASP.NET Core

Tento článek popisuje, jak povolit a nakonfigurovat Application Insights pro aplikaci ASP.NET Core .

Upozornění

Pro nové aplikace nebo zákazníky doporučujeme Azure Monitor OpenTelemetry Distro pro podporu Azure Monitor Application Insights. Distribuce OpenTelemetry služby Azure Monitor poskytuje podobné funkce a prostředí jako sada Application Insights SDK. Ze sady Application Insights SDK je možné migrovat pomocí průvodců migrací pro .NET, Node.js a Python, ale stále pracujeme na přidání několika dalších funkcí pro zpětnou kompatibilitu.

Application Insights může shromažďovat následující telemetrická data z vaší aplikace ASP.NET Core:

  • Žádosti
  • Závislosti
  • Výjimky
  • Čítače výkonu
  • Tlukot srdce
  • Protokoly

Používáme příklad aplikace MVC. Pokud používáte pracovní službu, postupujte podle pokynů v aplikacích Application Insights pro pracovní službu.

K dispozici je nabídka .NET založená na OpenTelemetry. Další informace najdete v Přehledu OpenTelemetry.

Poznámka:

Podpora příjmu instrumentačních klíčů skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.

Poznámka:

Pokud chcete použít samostatného zprostředkovatele ILogger, použijte Microsoft.Extensions.Logging.ApplicationInsight.

Podporované scénáře

Sada Application Insights SDK pro ASP.NET Core může monitorovat vaše aplikace bez ohledu na to, kde nebo jak běží. Pokud je vaše aplikace spuštěná a má síťové připojení k Azure, můžete shromažďovat telemetrická data. Monitorování Application Insights se podporuje všude, kde se podporuje .NET Core, a pokrývá následující scénáře:

  • Operační systém: Windows, Linux nebo Mac
  • Metoda hostování: Během procesu nebo mimo něj
  • Metoda nasazení: Závislá na frameworku nebo samostatná
  • Webový server: Internetový informační server (IIS) nebo Kestrel
  • Platforma hostování: Funkce Web Apps pro službu Aplikace Azure, Azure Virtual Machines, Docker a Azure Kubernetes Service (AKS)
  • Verze .NET: Všechny oficiálně podporované verze .NET, které nejsou ve verzi Preview
  • INTEGROVANÉ VÝVOJOVÉ PROSTŘEDÍ: Visual Studio, Visual Studio Code nebo příkazový řádek

Požadavky

  • Funkční aplikace ASP.NET Core. Pokud potřebujete vytvořit aplikaci ASP.NET Core, postupujte podle tohoto kurzu ASP.NET Core.
  • Odkaz na podporovanou verzi balíčku NuGet Application Insights
  • Platný připojovací řetězec Application Insights. Tento řetězec se vyžaduje k odeslání jakékoli telemetrie do Application Insights. Pokud potřebujete vytvořit nový prostředek Application Insights, abyste získali připojovací řetězec, přečtěte si téma Vytvoření prostředku Application Insights.

Povolení telemetrie na straně serveru Application Insights (Visual Studio)

Pro Visual Studio pro Mac použijte ruční pokyny. Tento postup podporuje pouze verze windows sady Visual Studio.

  1. Otevřete projekt v sadě Visual Studio.

  2. Přejděte na Project>Add Application Insights Telemetry.

  3. Vyberte Azure Application Insights>Další.

  4. Zvolte své předplatné a instanci Application Insights. Nebo můžete vytvořit novou instanci pomocí příkazu Vytvořit novou. Vyberte Další.

  5. Přidejte nebo potvrďte připojovací řetězec Application Insights. Měla by být předem vyplněna na základě vašeho výběru v předchozím kroku. Vyberte Dokončit.

  6. Po přidání Application Insights do projektu zkontrolujte, jestli používáte nejnovější stabilní verzi sady SDK. Přejděte do Projekt>Spravovat balíčky NuGet>Microsoft.ApplicationInsights.AspNetCore. Pokud potřebujete, vyberte Aktualizovat.

    Snímek obrazovky znázorňující, kde vybrat balíček Application Insights pro aktualizaci

Povolení telemetrie na straně serveru Application Insights (bez sady Visual Studio)

  1. Nainstalujte balíček NuGet sady Application Insights SDK pro ASP.NET Core.

    Doporučujeme vždy používat nejnovější stabilní verzi. Úplné poznámky k verzi sady SDK najdete v opensourcovém úložišti GitHubu.

    Následující ukázka kódu ukazuje změny, které se mají přidat do souboru .csproj projektu:

    <ItemGroup>
        <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.21.0" />
    </ItemGroup>
    
  2. Přidejte AddApplicationInsightsTelemetry() do program.cs třídy.

    Přidejte builder.Services.AddApplicationInsightsTelemetry(); za metodu WebApplication.CreateBuilder(), jak je znázorněno v tomto příkladu:

    // 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();
    
  3. Přidejte připojovací řetězec, což lze provést třemi způsoby:

    • (Doporučeno) Nastavte připojovací řetězec v konfiguraci.

      Nastavte připojovací řetězec v appsettings.json a ujistěte se, že se konfigurační soubor během publikování zkopíruje do kořenové složky aplikace.

      {
          "Logging": {
              "LogLevel": {
                  "Default": "Information",
                  "Microsoft.AspNetCore": "Warning"
              }
          },
          "AllowedHosts": "*",
          "ApplicationInsights": {
              "ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
          }
      }
      
    • Nastavte připojovací řetězec buď v proměnné prostředí APPLICATIONINSIGHTS_CONNECTION_STRING, nebo v konfiguračním souboru JSON ApplicationInsights:ConnectionString.

      Příklad:

      • SET ApplicationInsights:ConnectionString = <Copy connection string from Application Insights Resource Overview>
      • SET APPLICATIONINSIGHTS_CONNECTION_STRING = <Copy connection string from Application Insights Resource Overview>
      • Obvykle se používá ve službě APPLICATIONINSIGHTS_CONNECTION_STRING Web Apps. Dá se použít také na všech místech, kde je tato sada SDK podporovaná.

      Poznámka:

      Připojovací řetězec zadaný v kódu má přednost před proměnnou APPLICATIONINSIGHTS_CONNECTION_STRING prostředí, která má přednost před dalšími možnostmi.

    • Nastavte připojovací řetězec v kódu.

      Ve třídě ApplicationInsightsServiceOptions zadejte připojovací řetězec jako součást argumentu AddApplicationInsightsTelemetry pro .

Tajné kódy uživatelů a další poskytovatelé konfigurace

Pokud chcete uložit připojovací řetězec do uživatelských tajemství ASP.NET Core nebo ho načíst z jiného poskytovatele konfigurace, můžete použít přetížení s parametrem Microsoft.Extensions.Configuration.IConfiguration. Příkladem parametru je services.AddApplicationInsightsTelemetry(Configuration);.

Ve verzi Microsoft.ApplicationInsights.AspNetCore, počínaje verzí 2.15.0, volání services.AddApplicationInsightsTelemetry() automaticky přečte připojovací řetězec z Microsoft.Extensions.Configuration.IConfiguration aplikace. Není nutné explicitně zadávat IConfiguration.

Pokud IConfiguration se načetla konfigurace z více poskytovatelů, určuje services.AddApplicationInsightsTelemetry prioritu konfigurace z appsettings.json bez ohledu na pořadí, ve kterém jsou zprostředkovatelé přidáni. Použijte metodu services.AddApplicationInsightsTelemetry(IConfiguration) ke čtení konfigurace z IConfiguration, aniž by bylo zvýhodněno zacházení s appsettings.json.

Spusťte aplikaci

Spusťte aplikaci a odešlete jí požadavky. Telemetrie by teď měla proudit do Application Insights. Sada Application Insights SDK automaticky shromažďuje příchozí webové požadavky do vaší aplikace spolu s následující telemetrií.

Živé metriky

Živé metriky se dají použít k rychlému ověření, jestli je správně nakonfigurované monitorování aplikací pomocí Application Insights. Zobrazení telemetrie na webu Azure Portal může trvat několik minut, ale v podokně živých metrik se zobrazuje využití procesoru spuštěného procesu téměř v reálném čase. Může také zobrazovat další telemetrii, jako jsou požadavky, závislosti a trasování.

Povolení živých metrik pomocí kódu pro libovolnou aplikaci .NET

Poznámka:

Živé metriky jsou ve výchozím nastavení povolené při jeho onboardingu pomocí doporučených pokynů pro aplikace .NET.

Ruční konfigurace živých metrik:

  1. Nainstalujte balíček NuGet Microsoft.ApplicationInsights.PerfCounterCollector.

  2. Následující ukázkový kód konzolové aplikace ukazuje nastavení živých metrik:

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();
}

Předchozí ukázka je určená pro konzolovou aplikaci, ale stejný kód lze použít v libovolné aplikaci .NET. Pokud jsou povolené automatické shromažďování telemetrických modulů, je důležité zajistit, aby se stejná konfigurace používaná k inicializaci těchto modulů používala pro modul živý metrik.

Logování ILoggerem

Výchozí konfigurace shromažďuje záznamy ILoggerWarning a závažnější záznamy. Další informace najdete v tématu Jak přizpůsobit shromažďování protokolů ILogger?.

Závislosti

Kolekce závislostí je ve výchozím nastavení povolená. Sledování závislostí v Application Insights vysvětluje závislosti, které se automaticky shromažďují, a obsahuje také kroky pro ruční sledování.

Čítače výkonu

Podpora čítačů výkonu v ASP.NET Core je omezená:

  • Sada SDK verze 2.4.1 a novější shromažďuje čítače výkonu, pokud aplikace běží na platformě Web Apps (Windows).
  • Sada SDK verze 2.7.1 a novější shromažďuje čítače výkonu, pokud aplikace běží v operačním systému Windows a je cílena na netstandard2.0 nebo novější.
  • U aplikací, které cílí na rozhraní .NET Framework, podporují všechny verze sady SDK čítače výkonu.
  • Sada SDK verze 2.8.0 a novější podporuje čítač procesoru a paměti v Linuxu. Linux nepodporuje žádný jiný čítač. K získání čítačů systému v linuxových a jiných prostředích mimo Windows použijte eventCounters.

EventCounter

Ve výchozím nastavení je EventCounterCollectionModule povoleno. Informace o konfiguraci seznamu čítačů, které se mají shromažďovat, najdete v úvodu ke službě EventCounters.

Obohacení dat prostřednictvím protokolu HTTP

HttpContext.Features.Get<RequestTelemetry>().Properties["myProp"] = someData

Povolení telemetrie na straně klienta pro webové aplikace

Předchozí kroky vám pomůžou začít shromažďovat telemetrii na straně serveru. Pokud má vaše aplikace komponenty na straně klienta, postupujte podle dalších kroků a začněte shromažďovat telemetrické údaje o využití pomocí vložení skriptu zavaděče sady JavaScript (Web) SDK dle konfigurace.

  1. Do souboru _ViewImports.cshtml přidejte injektáž:

    @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
    
  2. V souboru _Layout.cshtml vložte HtmlHelper na konec sekce <head>, ale před jakýkoli jiný skript. Pokud chcete nahlásit vlastní telemetrii JavaScriptu ze stránky, zadejte ji za tento fragment kódu:

        @Html.Raw(JavaScriptSnippet.FullScript)
    </head>
    

Jako alternativu k použití FullScript je ScriptBody dostupný počínaje sadou Application Insights SDK pro ASP.NET Core verze 2.14. Použijte ScriptBody , pokud potřebujete řídit <script> značku pro nastavení zásad zabezpečení obsahu:

<script> // apply custom changes to this script tag.
    @Html.Raw(JavaScriptSnippet.ScriptBody)
</script>

Názvy souborů .cshtml odkazované dříve pocházejí z výchozí šablony aplikace MVC. Pokud chcete pro svou aplikaci správně povolit monitorování na straně klienta, musí se skript zavaděče sady JavaScript (Web) SDK zobrazit v <head> části každé stránky aplikace, kterou chcete monitorovat. Přidejte skript zavaděče sady JavaScript (Web) SDK do souboru _Layout.cshtml v šabloně aplikace pro povolení monitorování na straně klienta.

Pokud váš projekt neobsahuje _Layout.cshtml, můžete monitorování na straně klienta přidat přidáním skriptu zavaděče sady JavaScript (Web) SDK do ekvivalentního souboru, který řídí <head> všechny stránky v aplikaci. Případně můžete přidat skript JavaScript (Web) SDK Loader Script na více stránek, ale toto použití nedoporučujeme.

Poznámka:

Injektáž JavaScriptu poskytuje výchozí prostředí konfigurace. Pokud vyžadujete konfiguraci nad rámec nastavení připojovacího řetězce, musíte odebrat automatické injektování, jak je uvedeno, a ručně přidat JavaScript SDK.

Konfigurace sady Application Insights SDK

Sadu Application Insights SDK pro ASP.NET Core můžete přizpůsobit tak, aby se změnila výchozí konfigurace. Uživatelé sady Application Insights ASP.NET SDK můžou znát změnu konfigurace pomocí ApplicationInsights.config nebo úpravou TelemetryConfiguration.Active. V případě ASP.NET Core proveďte téměř všechny změny konfigurace v ConfigureServices() metodě třídy Startup.cs , pokud nebudete směrováni jinak. Další informace najdete v následujících částech.

Poznámka:

V aplikacích ASP.NET Core se změna konfigurace úpravou TelemetryConfiguration.Active nepodporuje.

Použití ApplicationInsightsServiceOptions

Můžete upravit několik běžných nastavení předáním ApplicationInsightsServiceOptions do AddApplicationInsightsTelemetry, jako v tomto příkladu:

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();

Tato tabulka obsahuje úplný seznam ApplicationInsightsServiceOptions nastavení:

Nastavení Popis Výchozí
PovolitModulSběruVýkonovýchČítačů Povolit nebo zakázat PerformanceCounterCollectionModule. Pravdivé
Modul pro povolení sledování požadavků pomocí telemetrie Povolit nebo zakázat RequestTrackingTelemetryModule. Pravdivé
EnableEventCounterCollectionModule Povolit nebo zakázat EventCounterCollectionModule. Pravdivé
Modul pro umožnění sledování závislostí telemetrie Povolit nebo zakázat DependencyTrackingTelemetryModule. Pravdivé
Modul telemetrie srdečního tepu služby App Services Povolit nebo zakázat AppServicesHeartbeatTelemetryModule. Pravdivé
PovolitAzureInstanceMetadataTelemetrickýModul Povolit nebo zakázat AzureInstanceMetadataTelemetryModule. Pravdivé
PovolitRychlýPulzMetrickýTok Povolení nebo zakázání funkce LiveMetrics Pravdivé
PovolitAdaptiveSampling Povolení nebo zakázání adaptivního vzorkování Pravdivé
Povolit srdeční tep Povolit nebo zakázat funkci heartbeat signálu. Pravidelně (15 min. výchozí) odesílá vlastní metriku s názvem HeartbeatState s informacemi o modulu runtime, jako je verze .NET a informace o prostředí Azure, pokud je to možné. Pravdivé
PřidatExtraktorAutomatickyShromažďovanýchMetrik Povolte nebo zakažte funkci AutoCollectedMetrics extractor. Tento procesor telemetrie odesílá předem agregované metriky o požadavcích a závislostech před vzorkováním. Pravdivé
RequestCollectionOptions.TrackExceptions Povolte nebo zakažte hlášení o neošetřených výjimkách modulem pro shromažďování požadavků. Hodnota False v netstandard2.0 (protože výjimky jsou sledovány pomocí ApplicationInsightsLoggerProvider). Jinak platí.
EnableDiagnosticsTelemetryModule (PovolitDiagnostickýTelemetrickýModul) Povolit nebo zakázat DiagnosticsTelemetryModule. Zakázání způsobí ignorování následujících nastavení: EnableHeartbeat, EnableAzureInstanceMetadataTelemetryModulea EnableAppServicesHeartbeatTelemetryModule. Pravdivé

Nejnovější seznam najdete v konfigurovatelném nastavení v ApplicationInsightsServiceOptions.

Doporučení konfigurace pro Microsoft.ApplicationInsights.AspNetCore SDK 2.15.0 a novější

V sadě SDK Microsoft.ApplicationInsights.AspNetCore verze 2.15.0 a novější můžete nakonfigurovat všechna nastavení, která jsou k dispozici, včetně ApplicationInsightsServiceOptions. Použijte instanci aplikace IConfiguration . Nastavení musí být pod částí ApplicationInsights, jak je znázorněno v následujícím příkladu. Následující část z appsettings.json nakonfiguruje připojovací řetězec a zakáže adaptivní vzorkování a shromažďování čítačů výkonu.

{
    "ApplicationInsights": {
    "ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000",
    "EnableAdaptiveSampling": false,
    "EnablePerformanceCounterCollectionModule": false
    }
}

Pokud se používá buď builder.Services.AddApplicationInsightsTelemetry(aiOptions) pro ASP.NET Core 6.0, nebo services.AddApplicationInsightsTelemetry(aiOptions) pro ASP.NET Core 3.1 a starší, přepíše to nastavení z Microsoft.Extensions.Configuration.IConfiguration.

Vzorkování

Sada Application Insights SDK pro ASP.NET Core podporuje pevné i adaptivní vzorkování. Ve výchozím nastavení je povolené adaptivní vzorkování.

Další informace najdete v tématu Konfigurace adaptivního vzorkování pro aplikace ASP.NET Core.

Přidání telemetrických inicializátorů

Pokud chcete rozšířit telemetrii o další informace, použijte inicializátory telemetrie.

Přidejte všechny nové TelemetryInitializer do kontejneru DependencyInjection, jak je znázorněno v následujícím kódu. SDK automaticky zachytí vše, co je přidáno do kontejneru TelemetryInitializer.

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();

var app = builder.Build();

Poznámka:

builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>(); funguje pro jednoduché inicializátory. Pro ostatní se builder.Services.AddSingleton(new MyCustomTelemetryInitializer() { fieldName = "myfieldName" }); vyžaduje.

Odebrání telemetrických inicializátorů

Ve výchozím nastavení jsou k dispozici inicializátory telemetrie. Chcete-li odebrat všechny nebo konkrétní inicializátory telemetrie, použijte následující ukázkový kód po volání 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();

Přidání procesorů telemetrie

Procesory vlastní telemetrie můžete přidat do TelemetryConfiguration pomocí rozšiřující metody AddApplicationInsightsTelemetryProcessor na IServiceCollection. Procesory telemetrie se používají v pokročilých scénářích filtrování. Použijte následující příklad:

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();

Konfigurujte nebo odeberte výchozí TelemetryModules

Application Insights automaticky shromažďuje telemetrii o konkrétních úlohách bez nutnosti ručního sledování uživatelem.

Ve výchozím nastavení jsou povoleny následující moduly automatické kolekce. Tyto moduly zodpovídají za automatické shromažďování telemetrie. Můžete je zakázat nebo nakonfigurovat tak, aby měnily výchozí chování.

  • RequestTrackingTelemetryModule: Shromažďuje RequestTelemetry z příchozích webových požadavků.
  • DependencyTrackingTelemetryModule: Shromažďuje DependencyTelemetry z odchozích volání HTTP a volání SQL.
  • PerformanceCollectorModule: Shromažďuje nástroje Windows PerformanceCounters.
  • QuickPulseTelemetryModule: Shromažďuje telemetrii, která se má zobrazit v podokně živých metrik.
  • AppServicesHeartbeatTelemetryModule: Shromažďuje heartbeat signály (které se odesílají jako vlastní metriky) o prostředí služby App Service, ve kterém je aplikace hostována.
  • AzureInstanceMetadataTelemetryModule: Shromažďuje heartbeat signály (které se odesílají jako vlastní metriky) o prostředí virtuálního počítače Azure, kde je aplikace hostovaná.
  • EventCounterCollectionModule: Shromažďuje EventCounters. Tento modul je nová funkce a je k dispozici v sadě SDK verze 2.8.0 a novější.

Pokud chcete nakonfigurovat jakékoli výchozí TelemetryModule, použijte metodu rozšíření ConfigureTelemetryModule<T> na IServiceCollection, jak je znázorněno v následujícím příkladu:

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();

Ve verzích 2.12.2 a novějších ApplicationInsightsServiceOptions obsahuje jednoduchou možnost zakázat některý z výchozích modulů.

Konfigurace kanálu telemetrie

Výchozí kanál telemetrie je ServerTelemetryChannel. Následující příklad ukazuje, jak to přepsat.

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();

Poznámka:

Pokud chcete vyrovnávací paměť vyprázdnit, viz Vyprazdňování dat. Pokud například používáte sadu SDK v aplikaci, která se vypne, možná budete muset vyrovnávací paměť vyprázdnit.

Dynamické zakázání telemetrie

Pokud chcete telemetrii podmíněně a dynamicky zakázat, můžete instanci vyřešit pomocí kontejneru pro vkládání závislostí v ASP.NET Core kdekoliv ve svém kódu a nastavit na ní příznak TelemetryConfiguration.

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();

Předchozí ukázka kódu brání odesílání telemetrie do Application Insights. Nezabrání automatickým sběrným modulům ve shromažďování telemetrie. Pokud chcete odebrat konkrétní modul automatického sběru, přečtěte si téma Odebrání telemetrického modulu.

Řešení problému

Projděte si vyhrazený článek o řešení potíží.

Testování připojení mezi hostitelem vaší aplikace a službou příjmu dat

Sady SDK Application Insights a agenti odesílají telemetrii, aby se přijala jako volání REST API do koncových bodů příjmu dat. Připojení z webového serveru nebo hostitelského počítače aplikace ke koncovým bodům služby pro příjem dat můžete otestovat pomocí nezpracovaných klientů REST z příkazů PowerShellu nebo curl. Viz Řešení potíží s chybějící telemetrií aplikací ve službě Azure Monitor Application Insights.

Otevřené SDK

Čtení kódu a přispívání do kódu

Nejnovější aktualizace a opravy chyb najdete v poznámkách k verzi.

Poznámky k verzi

Pro verze 2.12 a novější: sady .NET SDK (včetně ASP.NET, ASP.NET Core a adaptérů protokolování)

Naše aktualizace služeb také shrnují hlavní vylepšení Application Insights.

Další kroky