Aplikace Přehledy pro ASP.NET Core aplikace

Tento článek popisuje, jak povolit Přehledy pro ASP.NET Core aplikace. Po dokončení pokynů v tomto článku bude application Přehledy shromažďovat požadavky, závislosti, výjimky, čítače výkonu, heartbeaty a protokoly z vaší ASP.NET Core aplikace.

V tomto příkladu použijeme aplikaci MVC, která cílí na netcoreapp3.0 . Tyto pokyny můžete použít pro všechny ASP.NET Core aplikace. Pokud používáte službu pracovního procesu, postupujte podle pokynů tady.

Poznámka

K dispozici je nabídka .NET založená na OpenTelemetry ve verzi Preview. Přečtěte si další informace.

Podporované scénáře

Sada Application Přehledy SDK pro ASP.NET Core můžete monitorovat aplikace bez ohledu na to, kde a jak se spouštěny. Pokud je vaše aplikace spuštěná a má síťové připojení k Azure, je možné shromažďovat telemetrii. Monitorování Přehledy aplikací se podporuje všude, kde se podporuje .NET Core. Podpora zahrnuje následující:

  • Operační systém: Windows, Linux nebo Mac
  • Metoda hostování: V procesu nebo mimo proces
  • Metoda nasazení: Závislé nebo samostatné rozhraní
  • Webový server: IIS (Internet Information Server) nebo Kestrel
  • Hostingová platforma: Web Apps funkce Azure App Service, virtuálního počítače Azure, Dockeru, Azure Kubernetes Service (AKS) a tak dále
  • Verze .NET Core: Všechny oficiálně podporované verze .NET Core, které nejsou ve verzi Preview
  • Integrované vývojové Visual Studio: Visual Studio, Visual Studio Code nebo příkazový řádek

Poznámka

ASP.NET Core 3.1 vyžaduje Application Přehledy 2.8.0 nebo novější.

Požadavky

  • Funkční ASP.NET Core aplikace. Pokud potřebujete vytvořit novou aplikaci ASP.NET Core, postupujte podle tohoto ASP.NET Core kurzu.
  • Platný instrumentační Přehledy služby Application Key. Tento klíč je nutný k odesílání všech telemetrických dat do služby Application Přehledy. Pokud potřebujete vytvořit nový prostředek služby Application Přehledy pro získání instrumentačního klíče, podívejte se na stránku Vytvoření prostředku Přehledy aplikace.

Důležité

Připojovací řetězce se doporučují před instrumentačními klíči. Nové oblasti Azure vyžadují místo instrumentačních klíčů připojovací řetězce. Připojovací řetězec identifikuje prostředek, ke který chcete přidružit telemetrická data. Umožňuje také upravit koncové body, které bude prostředek používat jako cíl pro vaši telemetrii. Připojovací řetězec budete muset zkopírovat a přidat ho do kódu vaší aplikace nebo do proměnné prostředí.

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

Pokud Visual Studio pro Mac, použijte ruční pokyny. Tento postup Windows jenom Visual Studio verze nástroje .

  1. Otevřete svůj projekt v sadě Visual Studio.

    Tip

    Pokud chcete sledovat všechny změny, které Přehledy aplikace provádí, můžete pro svůj projekt nastavit řízení zdrojového kódu. Pokud ho chcete nastavit, vyberte Soubor > Přidat do správy zdrojového kódu.

  2. Vyberte Project > Přidat telemetrii Přehledy aplikace.

  3. Vyberte Začínáme. V závislosti na vaší Visual Studio se název tohoto tlačítka může lišit. V některých dřívějších verzích má název tlačítko Start Free (Začít zdarma).

  4. Vyberte své předplatné a pak vyberte Resource Register (Registrovat > prostředky).

  5. Po přidání služby Application Přehledy do projektu zkontrolujte, že používáte nejnovější stabilní verzi sady SDK. Přejděte na Project > Spravovat NuGet balíčky > Microsoft.ApplicationInsights.AspNetCore. Pokud potřebujete, vyberte Aktualizovat.

    Snímek obrazovky znázorňující, kde vybrat Přehledy aplikace pro aktualizaci

  6. Pokud jste projekt přidali do správy zdrojového kódu, přejděte na Zobrazit > Team Explorer > změny. Výběrem jednotlivých souborů můžete zobrazit rozdílové zobrazení změn provedených telemetrií Přehledy aplikací.

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

  1. Nainstalujte balíček sady Application Přehledy SDK NuGet pro ASP.NET Core. Doporučujeme vždy používat nejnovější stabilní verzi. Úplné poznámky k verzi pro sadu SDK najdete v open source GitHub .

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

        <ItemGroup>
          <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.16.0" />
        </ItemGroup>
    
  2. Přidejte services.AddApplicationInsightsTelemetry(); do metody ve třídě , jako v tomto ConfigureServices() Startup příkladu:

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // The following line enables Application Insights telemetry collection.
            services.AddApplicationInsightsTelemetry();
    
            // This code adds other services for your application.
            services.AddMvc();
        }
    
  3. Nastavte instrumentační klíč.

    I když můžete instrumentační klíč zadat jako argument pro , doporučujeme zadat instrumentační AddApplicationInsightsTelemetry klíč v konfiguraci. Následující ukázka kódu ukazuje, jak zadat instrumentační klíč v appsettings.json . Ujistěte appsettings.json se, že se během publikování kopíruje do kořenové složky aplikace.

        {
          "ApplicationInsights": {
            "InstrumentationKey": "putinstrumentationkeyhere"
          },
          "Logging": {
            "LogLevel": {
              "Default": "Warning"
            }
          }
        }
    

    Případně můžete instrumentační klíč zadat v jedné z následujících proměnných prostředí:

    • APPINSIGHTS_INSTRUMENTATIONKEY

    • ApplicationInsights:InstrumentationKey

    Například:

    • SET ApplicationInsights:InstrumentationKey=putinstrumentationkeyhere

    • SET APPINSIGHTS_INSTRUMENTATIONKEY=putinstrumentationkeyhere

    • Obvykle se používá v Azure Web Apps , ale můžete ho použít také na všech místech, kde je tato sada APPINSIGHTS_INSTRUMENTATIONKEY SDK podporovaná. (Pokud monitorujete webovou aplikaci bez kódu, je tento formát nutný, pokud připojovací řetězce používáte.)

    Kromě nastavení instrumentačních klíčů teď můžete také použít připojovací řetězce.

    Poznámka

    Instrumentační klíč zadaný v kódu vyhrává nad proměnnou prostředí APPINSIGHTS_INSTRUMENTATIONKEY , která získává nad jinými možnostmi.

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

Pokud chcete instrumentační klíč uložit do tajných kódů ASP.NET Core nebo ho načíst od jiného poskytovatele konfigurace, můžete použít přetížení s Microsoft.Extensions.Configuration.IConfiguration parametrem . Například, services.AddApplicationInsightsTelemetry(Configuration);. Od Microsoft.ApplicationInsights.AspNetCore verze 2.15.0volání automaticky načte instrumentační klíč services.AddApplicationInsightsTelemetry() z Microsoft.Extensions.Configuration.IConfiguration aplikace. Není nutné explicitně zazadat IConfiguration .

Spusťte aplikaci

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

Live Metrics

Live Metrics můžete použít k rychlému ověření, jestli je monitorování Přehledy aplikace správně nakonfigurované. Zobrazení telemetrie na portálu a analýzách může trvat několik minut, ale live Metrics ukazuje využití procesoru spuštěného procesu v reálném čase. Může také zobrazit další telemetrii, jako jsou požadavky, závislosti a trasování.

Protokoly ILoggeru

Výchozí konfigurace shromažďuje protokoly a ILogger Warning závažnější protokoly. Tuto konfiguraci můžete přizpůsobit.

Závislosti

Kolekce závislostí je ve výchozím nastavení povolená. Tento článek vysvětluje závislosti, které se shromažďují automaticky, a obsahuje také postup ručního 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žďují čítače výkonu, pokud aplikace běží v Azure Web Apps (Windows).
  • Sada SDK verze 2.7.1 a novější shromažďují čítače výkonu, pokud aplikace běží v Windows a NETSTANDARD2.0 cílech nebo novějších verzích.
  • Pro aplikace cílené na .NET Framework podporují všechny verze sady SDK čítače výkonu.
  • Sada SDK verze 2.8.0 a novější podporují čítač procesoru a paměti v Linuxu. V Linuxu se nepodporuje žádný jiný čítač. Doporučený způsob, jak získat systémové čítače v Linuxu (a dalších Windows prostředích), je pomocí EventCounters.

EventCounter

Ve výchozím nastavení EventCounterCollectionModule je povoleno. Informace o tom, jak nakonfigurovat seznam čítačů, které se budou shromažďovat, najdete v úvodu k EventCounters.

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 telemetrii využití.

  1. Do _ViewImports.cshtml souboru přidejte injektáž:
    @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
  1. V _Layout.cshtml souboru HtmlHelper vložte na konec oddílu , ale před <head> jakýkoli jiný skript. Pokud chcete nahlásit nějakou vlastní telemetrii JavaScriptu ze stránky, injektujte ji za tento fragment kódu:
    @Html.Raw(JavaScriptSnippet.FullScript)
    </head>

Jako alternativu k použití je k dispozici počínaje FullScript ScriptBody sadou Application Přehledy SDK pro ASP.NET Core verze 2.14. Tuto možnost použijte, 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, jsou z výchozí šablony aplikace MVC. Pokud chcete pro svou aplikaci správně povolit monitorování na straně klienta, fragment kódu JavaScriptu se nakonec musí zobrazit v části každé stránky aplikace, kterou <head> chcete monitorovat. Pokud to chcete udělat v této šabloně aplikace, přidejte fragment kódu JavaScriptu do _Layout.cshtml .

Pokud váš projekt neobsahuje _Layout.cshtml , můžete přidat monitorování na straně klienta. Chcete-li to provést, přidejte fragment kódu JavaScriptu do ekvivalentního souboru, který řídí <head> všechny stránky v aplikaci. Fragment kódu můžete také přidat na více stránek, ale toto řešení je obtížné udržovat a obecně ho nedoporučujeme.

Poznámka

Injektáž JavaScriptu poskytuje výchozí prostředí konfigurace. Pokud kromě nastavení instrumentačního klíče vyžadujete konfiguraci, musíte odebrat automatické vkládání, jak je popsáno výše, a ručně přidat sadu JavaScript SDK.

Konfigurace sady Application Přehledy SDK

Můžete přizpůsobit sadu Application Přehledy SDK 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í nebo ApplicationInsights.config úpravou TelemetryConfiguration.Active . Například ASP.NET Core téměř všechny změny konfigurace v metodě vaší třídy, pokud nejste ConfigureServices() Startup.cs přesměrováni jinak. Další informace najdete v následujících částech.

Poznámka

V ASP.NET Core aplikacích není podporována změna konfigurace TelemetryConfiguration.Active úpravou.

Použití ApplicationInsightsServiceOptions

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

public void ConfigureServices(IServiceCollection services)
{
    Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions aiOptions
                = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
    // Disables adaptive sampling.
    aiOptions.EnableAdaptiveSampling = false;

    // Disables QuickPulse (Live Metrics stream).
    aiOptions.EnableQuickPulseMetricStream = false;
    services.AddApplicationInsightsTelemetry(aiOptions);
}

Tato tabulka obsahuje úplný seznam ApplicationInsightsServiceOptions nastavení:

Nastavení Popis Výchozí
EnablePerformanceCounterCollectionModule Povolení nebo zakázání PerformanceCounterCollectionModule true
EnableRequestTrackingTelemetryModule Povolení nebo zakázání RequestTrackingTelemetryModule true
EnableEventCounterCollectionModule Povolení nebo zakázání EventCounterCollectionModule true
EnableDependencyTrackingTelemetryModule Povolení nebo zakázání DependencyTrackingTelemetryModule true
EnableAppServicesHeartbeatTelemetryModule Povolení nebo zakázání AppServicesHeartbeatTelemetryModule true
EnableAzureInstanceMetadataTelemetryModule Povolení nebo zakázání AzureInstanceMetadataTelemetryModule true
EnableQuickPulseMetricStream Povolení nebo zakázání funkce LiveMetrics true
EnableAdaptiveSampling Povolení nebo zakázání adaptivního vzorkování true
EnableHeartbeat Funkce Povolit/zakázat heartbeats, která pravidelně (ve výchozím nastavení 15 minut) odesílá vlastní metriku s názvem HeartbeatState s informacemi o modulu runtime, jako je verze .NET, informace o prostředí Azure, pokud jsou k dispozici atd. true
AddAutoCollectedMetricExtractor Extractor Enable/Disable AutoCollectedMetrics, což je telemetryProcessor, který před vzorkováním odesílá předem agregované metriky týkající se požadavků a závislostí. true
RequestCollectionOptions.TrackExceptions Povolte nebo zakažte generování sestav o sledování neošetřených výjimek modulem kolekce požadavků. false v NETSTANDARD2.0 (protože výjimky jsou sledovány pomocí ApplicationInsightsLoggerProvider), v opačném případě true.
EnableDiagnosticsTelemetryModule Povolte nebo zakažte DiagnosticsTelemetryModule . Zakázáním této možnosti se budou ignorovat následující nastavení. EnableHeartbeat, EnableAzureInstanceMetadataTelemetryModule, EnableAppServicesHeartbeatTelemetryModule true

Aktuální seznam najdete v tématu Konfigurovatelné ApplicationInsightsServiceOptions nastavení v .

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

V sadě Microsoft.ApplicationInsights.AspNetCore SDK verze 2.15.0 a novější doporučujeme nakonfigurovat každé nastavení dostupné v , včetně ApplicationInsightsServiceOptions InstrumentationKey, pomocí IConfiguration instance aplikace. Nastavení musí být v části ApplicationInsights, jak je znázorněno v následujícím příkladu. Následující část souboru appsettings.json nakonfiguruje instrumentační klíč a zakáže adaptivní vzorkování a shromažďování čítačů výkonu.

{
    "ApplicationInsights": {
    "InstrumentationKey": "putinstrumentationkeyhere",
    "EnableAdaptiveSampling": false,
    "EnablePerformanceCounterCollectionModule": false
    }
}

Pokud services.AddApplicationInsightsTelemetry(aiOptions) se použije , přepíše nastavení z Microsoft.Extensions.Configuration.IConfiguration .

Vzorkování

Sada Application Přehledy SDK pro ASP.NET Core podporuje vzorkování s pevnou rychlostí i adaptivní vzorkování. Ve výchozím nastavení je adaptivní vzorkování povolené.

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

Přidání inicializovaných telemetrie

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

Přidejte do TelemetryInitializer kontejneru DependencyInjection všechny nové položky, jak je znázorněno v následujícím kódu. Sada SDK automaticky vybere všechny TelemetryInitializer přidané položky do DependencyInjection kontejneru.

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
}

Poznámka

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

Odebrání telemetrieInitializers

Ve výchozím nastavení jsou k dispozici inicializátory telemetrie. Pokud chcete odebrat všechny nebo konkrétní inicializátory telemetrie, použijte po volání následující vzorový AddApplicationInsightsTelemetry() kód.

public void ConfigureServices(IServiceCollection services)
{
    services.AddApplicationInsightsTelemetry();

    // Remove a specific built-in telemetry initializer
    var tiToRemove = services.FirstOrDefault<ServiceDescriptor>
                        (t => t.ImplementationType == typeof(AspNetCoreEnvironmentTelemetryInitializer));
    if (tiToRemove != null)
    {
        services.Remove(tiToRemove);
    }

    // Remove all initializers
    // This requires importing namespace by using Microsoft.Extensions.DependencyInjection.Extensions;
    services.RemoveAll(typeof(ITelemetryInitializer));
}

Přidání procesorů telemetrie

Vlastní procesory telemetrie můžete do nástroje přidat TelemetryConfiguration pomocí metody rozšíření v AddApplicationInsightsTelemetryProcessor IServiceCollection nástroji . Procesory telemetrie se používají v pokročilých scénářích filtrování. Použijte následující příklad.

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddApplicationInsightsTelemetry();
    services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();

    // If you have more processors:
    services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
}

Konfigurace nebo odebrání výchozích modulů TelemetryModule

Aplikační Přehledy používá moduly telemetrie k automatickému shromažďování užitečných telemetrických dat o konkrétních úlohách bez nutnosti ručního sledování ze strany uživatele.

Ve výchozím nastavení jsou povoleny následující moduly automatického shromažďování. Tyto moduly zodpovídají za automatické shromažďování telemetrie. Můžete je zakázat nebo nakonfigurovat tak, aby se změnilo jejich 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 Windows PerformanceCounters.
  • QuickPulseTelemetryModule – Shromažďuje telemetrii pro zobrazení na portálu Live Metrics.
  • AppServicesHeartbeatTelemetryModule – Shromažďuje heart heart hearts (které se odesílaly jako vlastní metriky) o Azure App Service prostředí, ve kterém je aplikace hostovaná.
  • AzureInstanceMetadataTelemetryModule – Shromažďuje heart heart hearts (které se odesílaly jako vlastní metriky) o prostředí virtuálního počítače Azure, ve kterém je aplikace hostovaná.
  • EventCounterCollectionModule – Shromažďuje EventCounters; Tento modul je nová funkce, která je dostupná v sadě SDK verze 2.8.0 a novější.

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

using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;

public void ConfigureServices(IServiceCollection services)
{
    services.AddApplicationInsightsTelemetry();

    // The following configures DependencyTrackingTelemetryModule.
    // Similarly, any other default modules can be configured.
    services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
            {
                module.EnableW3CHeadersInjection = true;
            });

    // The following removes all default counters from EventCounterCollectionModule, and adds a single one.
    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 = services.FirstOrDefault<ServiceDescriptor>(t => t.ImplementationType == typeof(PerformanceCollectorModule));
    if (performanceCounterService != null)
    {
        services.Remove(performanceCounterService);
    }
}

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

Konfigurace kanálu telemetrie

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

using Microsoft.ApplicationInsights.Channel;

    public void ConfigureServices(IServiceCollection services)
    {
        // Use the following to replace the default channel with InMemoryChannel.
        // This can also be applied to ServerTelemetryChannel.
        services.AddSingleton(typeof(ITelemetryChannel), new InMemoryChannel() {MaxTelemetryBufferCapacity = 19898 });

        services.AddApplicationInsightsTelemetry();
    }

Dynamické zakázání telemetrie

Pokud chcete telemetrii zakázat podmíněně a dynamicky, můžete instanci vyřešit pomocí kontejneru injektáže závislostí ASP.NET Core kdekoli v kódu a nastavit na něj TelemetryConfiguration DisableTelemetry příznak .

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddApplicationInsightsTelemetry();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration)
    {
        configuration.DisableTelemetry = true;
        ...
    }

Předchozí ukázka kódu brání odesílání telemetrie do služby Application Přehledy. Nezabrání žádným modulům automatického shromažďování ve shromažďování telemetrických dat. Pokud chcete odebrat konkrétní modul automatického shromažďování, podívejte se na článek o odebrání modulu telemetrie.

Nejčastější dotazy

Podporuje application Přehledy ASP.NET Core 3.X?

Ano. Aktualizujte na Application Přehledy SDK pro ASP.NET Core verze 2.8.0 nebo novější. Starší verze sady SDK nepodporují ASP.NET Core 3.X.

Pokud také povolíte telemetriina straně serveru na základě Visual Studio, aktualizujte na nejnovější verzi Visual Studio 2019 (16.3.0) pro onboarding. Starší verze Visual Studio nepodporují automatické onboarding pro aplikace ASP.NET Core 3.X.

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

Získejte instanci TelemetryClient pomocí injektáže konstruktoru a zavolejte na ní TrackXXX() požadovanou metodu. Nedoporučujeme vytvářet nové instance nebo TelemetryClient TelemetryConfiguration v ASP.NET Core aplikaci. V kontejneru je už zaregistrovaná jedna instance , která sdílí zbytek TelemetryClient DependencyInjection TelemetryConfiguration telemetrie. Vytvoření nové instance se doporučuje jenom v případě, že potřebuje konfiguraci, která je oddělená od TelemetryClient 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í sestav vlastních dat v Application Přehledy najdete v tématu Referenční informace k rozhraní API Přehledy vlastních metrik aplikace. Podobný přístup lze použít k odesílání vlastních metrik do služby Application Přehledy pomocí rozhraní API GetMetric.

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

Ve výchozím nastavení se Warning automaticky zachycují pouze protokoly a závažnější protokoly. Pokud chcete toto chování změnit, explicitně přepište konfiguraci protokolování pro ApplicationInsights poskytovatele, jak je znázorněno níže. Následující konfigurace umožňuje službě ApplicationInsights zachytávání všech Information protokolů a závažnějších protokolů.

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  }
}

Je důležité si uvědomit, že následující kroky nezpůsobí, že zprostředkovatel ApplicationInsights zachycuje Information protokoly. Nezachytí ho, protože sada SDK přidá výchozí filtr protokolování, který instruuje, aby zachytávání pouze protokolů a ApplicationInsights Warning závažnějších protokolů. ApplicationInsights vyžaduje explicitní přepsání.

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

Další informace najdete v tématu Konfigurace nástroje ILogger.

Některé Visual Studio použily metodu rozšíření UseApplicationInsights() v IWebHostBuilder k povolení třídy Application Přehledy. Je toto využití stále platné?

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

Nasazuji svou ASP.NET Core do Web Apps. Mám stále povolit rozšíření Application Přehledy z Web Apps?

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

  • Telemetrie Přehledy bude dál fungovat v:
    • 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 na rozhraní.
    • Všechny cílové architektury, včetně úplného .NET Framework.
    • Všechny možnosti hostování, včetně Web Apps, virtuálních počítačů, Linuxu, kontejnerů, Azure Kubernetes Service a hostování mimo Azure.
    • Všechny verze .NET Core včetně verzí Preview.
  • Telemetrii můžete zobrazit místně při ladění z Visual Studio.
  • Další vlastní telemetrii můžete sledovat pomocí rozhraní TrackXXX() API.
  • Máte plnou kontrolu nad konfigurací.

Je možné povolit monitorování Přehledy aplikací pomocí nástrojů, jako je Azure Monitor Application Přehledy Agent (dříve Monitorování stavu v2)?

Ano. Od verze Application Přehledy Agent 2.0.0-beta1se podporují ASP.NET Core hostované ve službě IIS.

Pokud svou aplikaci spustím v Linuxu, podporují se všechny funkce?

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

  • Sada SDK shromažďuje čítače událostí v Linuxu, protože čítače výkonu se podporují pouze v Windows. Většina metrik je stejná.
  • I když je ve výchozím nastavení povolená, pokud je aplikace spuštěná v Linuxu nebo macOS, kanál automaticky nevytváří místní složku úložiště pro dočasné uchovávání telemetrie, pokud dojde k problémům se ServerTelemetryChannel sítí. Kvůli tomuto omezení dojde ke ztrátě telemetrie v případě dočasných problémů se sítí nebo serverem. Pokud chcete tento problém obvyřešit, nakonfigurujte pro kanál místní složku:
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;

    public void ConfigureServices(IServiceCollection services)
    {
        // The following will configure the channel to use the given folder to temporarily
        // store telemetry items during network or Application Insights server issues.
        // User should ensure that the given folder already exists
        // and that the application has read/write permissions.
        services.AddSingleton(typeof(ITelemetryChannel),
                                new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});
        services.AddApplicationInsightsTelemetry();
    }

Toto omezení se na verzi 2.15.0 a novější vztahuje.

Podporuje se tato sada SDK pro nové aplikace šablony pracovní služby .NET Core 3.X?

Tato sada SDK vyžaduje , proto nefunguje v žádné jiné aplikaci než HTTP, včetně aplikací HttpContext .NET Core 3.X Worker Service. Pokud chcete povolit službu Application Přehledy v takových aplikacích pomocí nově vydané sady SDK Microsoft.ApplicationInsights.WorkerService, podívejte se na článek Application Přehledy for Worker Service applications (non-HTTP applications) (Aplikacebez HTTP).

Open source sada SDK

Nejnovější aktualizace a opravy chyb najdete ve zprávě k vydání verze.

Další kroky