Aplikační Přehledy pro aplikace ASP.NET Core

Tento článek popisuje, jak povolit a nakonfigurovat aplikační Přehledy pro aplikaci ASP.NET Core.

Poznámka:

Následující dokumentace se spoléhá na rozhraní API Přehledy Application Přehledy Classic. Dlouhodobým plánem pro application Přehledy je shromažďovat data pomocí OpenTelemetry. Další informace najdete v tématu Povolení OpenTelemetry služby Azure Monitor pro aplikace .NET, Node.js, Python a Java.

Aplikační Přehledy může shromažďovat následující telemetrická data z aplikace ASP.NET Core:

  • Žádosti
  • Závislosti
  • Výjimky
  • Čítače výkonu
  • Prezenčních signálů
  • Protokoly

Používáme příklad aplikace MVC. Pokud používáte pracovní službu, postupujte podle pokynů v aplikaci Přehledy pro aplikace pracovních služeb.

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

Poznámka:

Podpora příjmu dat založeného na instrumentačním klíči 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 Přehledy 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í Přehledy aplikací se podporuje všude, kde se podporuje .NET Core, a popisuje následující scénáře:

  • Operační systém: Windows, Linux nebo Mac
  • Metoda hostování: V procesu nebo mimo proces
  • Metoda nasazení: Závislá nebo samostatná architektura
  • 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

Potřebujete:

  • 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 Přehledy aplikace.
  • Platný Přehledy připojovací řetězec aplikace. Tento řetězec se vyžaduje k odeslání jakékoli telemetrie do aplikačního Přehledy. Pokud potřebujete vytvořit nový prostředek Přehledy aplikace, abyste získali připojovací řetězec, přečtěte si téma Vytvoření prostředku Přehledy aplikace.

Povolení telemetrie na straně serveru Přehledy aplikací (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 Přehledy Telemetry.

  3. Vyberte Aplikace Azure Přehledy> Dalé.

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

  5. Přidejte nebo potvrďte Přehledy připojovací řetězec aplikace. 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í Přehledy aplikace do projektu zkontrolujte, jestli používáte nejnovější stabilní verzi sady SDK. Přejděte na Web Project>Manage NuGet Packages>Microsoft.Application Přehledy. AspNetCore. Pokud potřebujete, vyberte Aktualizovat.

    Screenshot that shows where to select the Application Insights package for update.

Povolení telemetrie na straně aplikace Přehledy serveru (bez sady Visual Studio)

  1. Nainstalujte balíček NuGet sady Application Přehledy 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 projektu .csproj :

    <ItemGroup>
        <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.21.0" />
    </ItemGroup>
    
  2. Přidejte AddApplicationInsightsTelemetry() do předmětu nebo program.cs předmětustartup.cs. Volba závisí na vaší verzi .NET Core.

    Přidejte builder.Services.AddApplicationInsightsTelemetry(); za metodu WebApplication.CreateBuilder() ve třídě Program , 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. Nastavte připojovací řetězec.

    I když můžete jako součást argumentu ApplicationInsightsServiceOptionsAddApplicationInsightsTelemetryzadat připojovací řetězec , doporučujeme zadat připojovací řetězec v konfiguraci. Následující ukázka kódu ukazuje, jak zadat připojovací řetězec v appsettings.json. Během publikování se ujistěte, že appsettings.json se zkopíruje do kořenové složky aplikace.

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "ApplicationInsights": {
        "ConnectionString": "Copy connection string from Application Insights Resource Overview"
      }
    }
    

    Případně můžete zadat připojovací řetězec v APPLICATIONINSIGHTS_CONNECTION_STRING proměnné prostředí nebo ApplicationInsights:ConnectionString v konfiguračním souboru JSON.

    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 vyhrává nad proměnnou APPLICATIONINSIGHTS_CONNECTION_STRINGprostředí, která vyhrává nad dalšími možnostmi.

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

Pokud chcete uložit připojovací řetězec do tajných kódů uživatele ASP.NET Core nebo ho načíst od jiného zprostředkovatele konfigurace, můžete přetížení použít s parametremMicrosoft.Extensions.Configuration.IConfiguration. Příkladem parametru je services.AddApplicationInsightsTelemetry(Configuration);.

Ve Microsoft.ApplicationInsights.AspNetCore verzi 2.15.0 a novější 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 zprostředkovatelů, 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 bez IConfiguration této zvýhodněné zacházení pro appsettings.json.

Spusťte aplikaci

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

Live Metrics

Živé metriky se dají použít k rychlému ověření, jestli je správně nakonfigurované monitorování Přehledy aplikací. Zobrazení telemetrie na portálu a analýze může několik minut trvat, ale živé metriky zobrazují 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í.

Protokoly ILoggeru

Výchozí konfigurace shromažďuje protokoly ILoggerWarning a vážnější protokoly. Další informace najdete v tématu Návody přizpůsobení shromažďování protokolů ILogger?.

Závislosti

Kolekce závislostí je ve výchozím nastavení povolená. Sledování závislostí v aplikaci Přehledy 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ěží ve Službě Web Apps (Windows).
  • Sada SDK verze 2.7.1 a novější shromažďuje čítače výkonu, pokud aplikace běží ve Windows a cílech netstandard2.0 nebo novějších verzích.
  • 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, podle dalších kroků začněte shromažďovat telemetrii využití pomocí injektáže skriptů zavaděče sady JavaScript (Web) SDK podle konfigurace.

  1. Do _ViewImports.cshtml, přidat injektáž:

    @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
    
  2. Vložte _Layout.cshtmlHtmlHelper na konec oddílu<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í FullScriptScriptBody je k dispozici počínaje sadou Application Přehledy 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 .cshtml souborů, na které se odkazuje 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 javascriptové sady JavaScript (Web) SDK zobrazit v <head> části každé stránky aplikace, kterou chcete monitorovat. Přidejte skript zavaděče javascriptové sady JavaScript (Web) SDK do _Layout.cshtml šablony aplikace, aby se povolilo monitorování na straně klienta.

Pokud projekt neobsahuje _Layout.cshtml, můžete monitorování na straně klienta přidat přidáním javascriptového 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 zavaděče javascriptové sady SDK na více stránek, ale nedoporučujeme ho.

Poznámka:

Injektáž JavaScriptu poskytuje výchozí prostředí konfigurace. Pokud vyžadujete konfiguraci nad rámec nastavení připojovací řetězec, musíte odebrat automatické injektáže, jak je popsáno, a ručně přidat javascriptovou sadu SDK.

Konfigurace sady Application Přehledy SDK

Sadu Application Přehledy SDK můžete přizpůsobit pro ASP.NET Core a změnit výchozí konfiguraci. Uživatelé sady Application Přehledy 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 jste jinak nesměrováni. 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í aplikace Přehledy ServiceOptions

Můžete upravit několik běžných nastavení předáním ApplicationInsightsServiceOptions souboru 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 QuickPulse (Live Metrics stream).
aiOptions.EnableQuickPulseMetricStream = false;

builder.Services.AddApplicationInsightsTelemetry(aiOptions);
var app = builder.Build();

Tato tabulka obsahuje úplný seznam ApplicationInsightsServiceOptions nastavení:

Nastavení Popis Výchozí
EnablePerformanceCounterCollectionModule Povolit nebo zakázat PerformanceCounterCollectionModule. True
EnableRequestTrackingTelemetryModule Povolit nebo zakázat RequestTrackingTelemetryModule. True
EnableEventCounterCollectionModule Povolit nebo zakázat EventCounterCollectionModule. True
EnableDependencyTrackingTelemetryModule Povolit nebo zakázat DependencyTrackingTelemetryModule. True
EnableAppServicesHeartbeatTelemetryModule Povolit nebo zakázat AppServicesHeartbeatTelemetryModule. True
EnableAzureInstanceMetadataTelemetryModule Povolit nebo zakázat AzureInstanceMetadataTelemetryModule. True
EnableQuickPulseMetricStream Povolení nebo zakázání funkce LiveMetrics True
EnableAdaptiveSampling Povolení nebo zakázání adaptivního vzorkování True
EnableHeartbeat Povolte nebo zakažte funkci prezenčních signálů. 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é. True
AddAutoCollectedMetricExtractor 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. True
RequestCollectionOptions.TrackExceptions Povolte nebo zakažte generování sestav neošetřeného sledování výjimek modulem shromažďování požadavků. Hodnota False in netstandard2.0 (protože výjimky jsou sledovány pomocí ApplicationInsightsLoggerProvider). Jinak platí.
EnableDiagnosticsTelemetryModule Povolit nebo zakázat DiagnosticsTelemetryModule. Zakázání způsobí ignorování následujících nastavení: EnableHeartbeat, EnableAzureInstanceMetadataTelemetryModulea EnableAppServicesHeartbeatTelemetryModule. True

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

Doporučení ke konfiguraci pro Microsoft.Application Přehledy AspNetCore SDK 2.15.0 a novější

V Microsoft.Application Přehledy. AspNetCore SDK verze 2.15.0 a novější, nakonfigurujte všechna nastavení, která jsou k dispozici , ApplicationInsightsServiceOptionsvčetně ConnectionString. 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": "Copy connection string from Application Insights Resource Overview",
    "EnableAdaptiveSampling": false,
    "EnablePerformanceCounterCollectionModule": false
    }
}

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

Vzorkování

Sada Application Přehledy 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 do kontejneru DependencyInjection všechny nové, TelemetryInitializer jak je znázorněno v následujícím kódu. Sada SDK automaticky vybere všechny TelemetryInitializer přidané do kontejneru DependencyInjection .

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

Vlastní procesory telemetrie můžete přidat TelemetryConfiguration pomocí metody AddApplicationInsightsTelemetryProcessor rozšíření 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();

Konfigurace nebo odebrání výchozího telemetrieModules

Aplikace Přehledy 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 na portálu Live Metrics.
  • AppServicesHeartbeatTelemetryModule: Shromažďuje prezenční signály (které se odesílají jako vlastní metriky), o prostředí App Service, kde je aplikace hostovaná.
  • AzureInstanceMetadataTelemetryModule: Shromažďuje prezenční 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 třídy 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í TelemetryModulenastavení, použijte metodu ConfigureTelemetryModule<T> rozšíření zapnutou 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 ji 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, přečtěte si téma 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 přeložit TelemetryConfiguration pomocí kontejneru injektáže závislostí jádra ASP.NET kdekoli v kódu a nastavit DisableTelemetry příznak.

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 zabraňuje odesílání telemetrie do aplikace Přehledy. Nezabrání shromažďování telemetrických dat žádnými moduly automatické kolekce. Pokud chcete odebrat konkrétní modul autocollection, přečtěte si téma Odebrání modulu telemetrie.

Nejčastější dotazy

Tato část obsahuje odpovědi na běžné otázky.

Podporuje Přehledy aplikace ASP.NET Core 3.1?

ASP.NET Core 3.1 už Microsoft nepodporuje.

Sadu Application Přehledy SDK pro ASP.NET Core verze 2.8.0 a Visual Studio 2019 nebo novější je možné použít s aplikacemi ASP.NET Core 3.1.

Jak můžu sledovat telemetrii, která se neshromažďuje automaticky?

Získejte instanci TelemetryClient pomocí injektáže konstruktoru a zavolejte na ni požadovanou TrackXXX() metodu. V aplikaci ASP.NET Core nedoporučujeme vytvářet nové TelemetryClient instance ani TelemetryConfiguration instance. V kontejneru DependencyInjection je již zaregistrovaná jedna instanceTelemetryClient, která sdílí TelemetryConfiguration zbytek telemetrie. Vytvořte novou TelemetryClient instanci jenom v případě, že potřebuje konfiguraci, která je oddělená od zbytku telemetrie.

Následující příklad ukazuje, jak sledovat další telemetrii z kontroleru.

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

Další informace o vytváření vlastních sestav dat v Přehledy aplikace najdete v tématu Referenční informace k rozhraní API pro vlastní metriky Přehledy aplikace. Podobný přístup se dá použít k odesílání vlastních metrik do aplikačních Přehledy pomocí rozhraní GetMetric API.

Návody zachytávání textu požadavku a odpovědi v telemetrii?

ASP.NET Core má integrovanou podporu protokolování informací o požadavku a odpovědi HTTP (včetně textu) prostřednictvím ILogger. Doporučujeme ho využít. To může potenciálně vystavit identifikovatelné osobní údaje (PII) v telemetrii a může způsobit výrazné zvýšení nákladů (náklady na výkon a fakturace Přehledy aplikací), proto před použitím rizika pečlivě vyhodnoťte.

Návody přizpůsobit shromažďování protokolů ILogger?

Výchozím nastavením pro Přehledy aplikace je zachytit pouze upozornění a vážnější protokoly.

Zachyťte informace a méně závažné protokoly změnou konfigurace protokolování pro poskytovatele Přehledy aplikace následujícím způsobem.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  },
  "ApplicationInsights": {
    "ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000"
  }
}

Je důležité si uvědomit, že následující příklad nezpůsobí, že poskytovatel služby Application Přehledy zachytává Information protokoly. Nezachytí ho, protože sada SDK přidá výchozí filtr protokolování, který dává pokyn ApplicationInsights k zachycení pouze Warning protokolů a složitějších protokolů. Přehledy aplikace vyžaduje explicitní přepsání.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  }
}

Další informace najdete v tématu Konfigurace ILoggeru.

Některé šablony sady Visual Studio používaly metodu rozšíření UseApplication Přehledy() na IWebHostBuilder k povolení aplikačního Přehledy. Je toto využití stále platné?

Metoda UseApplicationInsights() rozšíření je stále podporovaná, ale je označená jako zastaralá v sadě Application Přehledy SDK verze 2.8.0 a novější. Odebere se v další hlavní verzi sady SDK. Pokud chcete povolit telemetrii Přehledy aplikace, použijte AddApplicationInsightsTelemetry() ji, protože poskytuje přetížení k řízení určité konfigurace. V aplikacích ASP.NET Core 3.X je také jediný způsob, services.AddApplicationInsightsTelemetry() jak povolit Přehledy aplikací.

Nasazujem svoji aplikaci ASP.NET Core do Služby Web Apps. Mám stále povolit rozšíření Přehledy aplikace z Web Apps?

Pokud je sada SDK nainstalovaná v době sestavení, jak je znázorněno v tomto článku, nemusíte povolit rozšíření Application Přehledy z portálu App Service. Pokud je rozšíření nainstalované, po zjištění, že už je sada SDK přidaná, se vypne. Pokud povolíte Přehledy aplikace z rozšíření, nemusíte instalovat a aktualizovat sadu SDK. Pokud ale povolíte Přehledy aplikace podle pokynů v tomto článku, máte větší flexibilitu, protože:

  • Telemetrie Přehledy aplikací dál funguje:
    • Všechny operační systémy, včetně Windows, Linuxu a Macu.
    • Všechny režimy publikování, včetně samostatných nebo závislých architektur.
    • Všechny cílové architektury, včetně úplného rozhraní .NET Framework.
    • Všechny možnosti hostování, včetně Webových aplikací, virtuálních počítačů, Linuxu, kontejnerů, AKS a hostování mimo Azure.
    • Všechny verze .NET Core, včetně verzí Preview.
  • Telemetrii můžete zobrazit místně při ladění ze sady Visual Studio.
  • Pomocí rozhraní API můžete sledovat další vlastní telemetrii TrackXXX() .
  • Máte plnou kontrolu nad konfigurací.

Můžu povolit monitorování Přehledy aplikací pomocí nástrojů, jako je agent služby Azure Monitor Application Přehledy (dříve Monitorování stavu v2)?

Ano. V aplikaci Přehledy Agent 2.0.0-beta1 a novější jsou podporovány aplikace ASP.NET Core hostované ve službě IIS.

Jsou všechny funkce podporované, když spustím aplikaci v Linuxu?

Ano. Podpora funkcí sady SDK je stejná na všech platformách s následujícími výjimkami:

Je tato sada SDK podporovaná pro pracovní služby?

Ne. Pro pracovní služby použijte aplikační Přehledy pro aplikace pracovních služeb (aplikace jiné než HTTP).

Jak můžu odinstalovat sadu SDK?

Pokud chcete odebrat Přehledy aplikace, je potřeba odebrat balíčky NuGet a odkazy z rozhraní API ve vaší aplikaci. Balíčky NuGet můžete odinstalovat pomocí Správce balíčků NuGet v sadě Visual Studio.

Poznámka:

Tyto pokyny slouží k odinstalaci sady ASP.NET Core SDK. Pokud potřebujete odinstalovat sadu ASP.NET SDK, přečtěte si, jak můžu odinstalovat sadu ASP.NET SDK?.

  1. Odinstalujte Microsoft.Application Přehledy. Balíček AspNetCore pomocí Správce balíčků NuGet.
  2. Pokud chcete plně odebrat Přehledy aplikace, zkontrolujte a ručně odstraňte přidaný kód nebo soubory spolu se všemi voláními rozhraní API, která jste přidali do projektu. Další informace najdete v tématu Co se vytvoří při přidání sady Application Přehledy SDK?

Co se vytvoří při přidání sady Application Přehledy SDK?

Když do projektu přidáte Přehledy aplikace, vytvoří soubory a přidá do některých souborů kód. Pouze odinstalace balíčků NuGet nebude vždy zahodit soubory a kód. Pokud chcete plně odebrat Přehledy aplikace, měli byste zkontrolovat a ručně odstranit přidaný kód nebo soubory spolu s voláními rozhraní API, která jste přidali do projektu.

Když do projektu šablony Visual Studio ASP.NET Core přidáte telemetrii application Přehledy Telemetry, přidá následující kód:

  • [Název projektu].csproj

      <PropertyGroup>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <ApplicationInsightsResourceId>/subscriptions/00000000-0000-0000-0000-000000000000/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": {
        "InstrumentationKey": "00000000-0000-0000-0000-000000000000"
    
  • Připojení edService.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
            }
    

Řešení problému

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

Sady SDK a agenti aplikace Přehledy odesílají telemetrii, aby se ingestovala jako volání REST 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 Přehledy.

Opensourcová sada 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 služba Aktualizace také shrnuje hlavní vylepšení Přehledy aplikací.

Další kroky