Konfigurace sady Application Přehledy SDK pomocí application Přehledy.config nebo .xml

Sada Application Přehledy .NET SDK se skládá z mnoha balíčků NuGet. Základní balíček poskytuje rozhraní API pro odesílání telemetrie do Přehledy aplikace. Další balíčky poskytují moduly telemetrie a inicializátory pro automatické sledování telemetrie z vaší aplikace a jejího kontextu. Úpravou konfiguračního souboru můžete povolit nebo zakázat moduly telemetrie a inicializátory. Můžete také nastavit parametry pro některé z nich.

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.

Konfigurační soubor má název ApplicationInsights.config nebo ApplicationInsights.xml. Název závisí na typu vaší aplikace. Při instalaci většiny verzí sady SDK se do projektu automaticky přidá. Když ve výchozím nastavení použijete automatizované prostředí z projektů šablon sady Visual Studio, které podporují přidání>aplikace Přehledy telemetrie, ApplicationInsights.config soubor se vytvoří v kořenové složce projektu. Při kompilaci se zkopíruje do složky přihrádky. Přidá se také do webové aplikace aplikací Přehledy Agent na serveru SLUŽBY IIS. Konfigurační soubor se ignoruje, pokud se použije rozšíření pro weby Azure nebo rozšíření pro virtuální počítače Azure a škálovací sady virtuálních počítačů.

Neexistuje ekvivalentní soubor pro řízení sady SDK na webové stránce.

Tento článek popisuje části, které vidíte v konfiguračním souboru, jak řídí komponenty sady SDK a které balíčky NuGet tyto komponenty načítají.

Poznámka:

Pokyny ApplicationInsights.config a .xml se nevztahují na sadu .NET Core SDK. Pokud chcete nakonfigurovat aplikace .NET Core, postupujte podle pokynů v Přehledy aplikací aplikace ASP.NET Core.

Moduly telemetrie (ASP.NET)

Každý modul telemetrie shromažďuje konkrétní typ dat a k odesílání dat používá základní rozhraní API. Moduly jsou nainstalovány různými balíčky NuGet, které také přidávají požadované řádky do souboru .config.

V konfiguračním souboru pro každý modul je uzel. Pokud chcete modul zakázat, odstraňte uzel nebo ho okomentujte.

Sledování závislosti

Sledování závislostí shromažďuje telemetrická data o voláních vaší aplikace do databází a externích služeb a databází. Pokud chcete povolit, aby tento modul fungoval na serveru SLUŽBY IIS, musíte nainstalovat aplikaci Přehledy agenta.

Můžete také napsat vlastní kód sledování závislostí pomocí rozhraní TrackDependency API.

Závislosti je možné automaticky kompletovat beze změny kódu pomocí připojení založeného na agentech (bez kódu). Pokud ho chcete použít ve webových aplikacích Azure, povolte rozšíření Application Přehledy. Pokud ho chcete použít ve virtuálním počítači Azure nebo škálovací sadě virtuálních počítačů Azure, povolte rozšíření Application Monitoring pro virtuální počítače a škálovací sady virtuálních počítačů.

Kolektor výkonu

Kolektor výkonu shromažďuje čítače výkonu systému, jako je procesor, paměť a zatížení sítě z instalací služby IIS. Můžete určit, které čítače se mají shromažďovat, včetně čítačů výkonu, které jste nastavili sami.

Telemetrie diagnostiky Přehledy aplikací

Třída DiagnosticsTelemetryModule hlásí chyby v samotném kódu instrumentace Přehledy aplikace. Příklady jsou, pokud kód nemá přístup k čítačům výkonu nebo pokud ITelemetryInitializer vyvolá výjimku. Trasování telemetrie sledované tímto modulem se zobrazí v diagnostickém vyhledávání.

  • Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule
  • Microsoft.Application Přehledy balíček NuGet. Pokud tento balíček instalujete jenom, soubor Application Přehledy.config se nevytvořil automaticky.

Vývojářský režim

Třída DeveloperModeWithDebuggerAttachedTelemetryModule vynutí, aby aplikace Přehledy TelemetryChannel odesílat data okamžitě, jednu položku telemetrie najednou, když je ladicí program připojen k procesu aplikace. Tento návrh zkracuje dobu mezi okamžikem, kdy aplikace sleduje telemetrii a kdy se zobrazí na portálu Přehledy aplikace. Způsobuje významné režijní náklady na využití procesoru a šířky pásma sítě.

Sledování webových požadavků

Sledování webových požadavků hlásí dobu odezvy a kód výsledku požadavků HTTP.

Sledování výjimek

Třída ExceptionTrackingTelemetryModule sleduje neošetřené výjimky ve webové aplikaci. Další informace naleznete v tématu Selhání a výjimky.

  • Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.
  • Microsoft.Application Přehledy. Balíček NuGet web.
  • Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule: Sleduje nepozorovaný úkol. Výjimky.
  • Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule: Sleduje neošetřené výjimky pro role pracovních procesů, služby Systému Windows a konzolové aplikace.
  • Balíček NuGet systému Windows Server Přehledy aplikace.

Sledování EventSource

Třída EventSourceTelemetryModule umožňuje nakonfigurovat události EventSource, které se mají odesílat do aplikace Přehledy jako trasování. Informace o sledování událostí EventSource naleznete v tématu Použití událostí EventSource.

Sledování událostí trasování událostí pro Windows

Tato EtwCollectorTelemetryModule třída umožňuje nakonfigurovat události od poskytovatelů trasování událostí zprostředkovatele Trasování událostí pro Windows, které se mají odesílat do aplikace Přehledy. Informace o sledování událostí trasování událostí Trasování událostí pro Windows naleznete v tématu Použití událostí pro Windows.

Microsoft.Application Přehledy

Balíček Microsoft.ApplicationInsights poskytuje základní rozhraní API sady SDK. Ostatní moduly telemetrie používají toto rozhraní API. Můžete ho také použít k definování vlastní telemetrie.

  • V souboru Application Přehledy.config není žádná položka.
  • Microsoft.Application Přehledy balíček NuGet. Pokud pouze nainstalujete tento NuGet, nevygeneruje se žádný soubor .config.

Kanál telemetrie

Kanál telemetrie spravuje ukládání do vyrovnávací paměti a přenos telemetrie do služby Přehledy aplikace.

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel je výchozí kanál pro webové aplikace. Uloží data do vyrovnávací paměti a využívá mechanismy opakování a úložiště místních disků pro spolehlivější doručování telemetrie.
  • Microsoft.ApplicationInsights.InMemoryChannel je jednoduchý kanál telemetrie. Používá se, pokud není nakonfigurovaný žádný jiný kanál.

Inicializátory telemetrie (ASP.NET)

Inicializátory telemetrie nastavují kontextové vlastnosti, které se odesílají spolu s každou položkou telemetrie.

Můžete napsat vlastní inicializátory pro nastavení kontextových vlastností.

Standardní inicializátory jsou nastaveny buď webovými nebo windowsserverovými balíčky NuGet:

  • AccountIdTelemetryInitializerAccountId nastaví vlastnost.

  • AuthenticatedUserIdTelemetryInitializerAuthenticatedUserId nastaví vlastnost nastavenou sadou JavaScript SDK.

  • AzureRoleEnvironmentTelemetryInitializerRoleName aktualizuje a RoleInstance vlastnosti Device kontextu pro všechny položky telemetrie s informacemi extrahovanými z prostředí modulu runtime Azure.

  • BuildInfoConfigComponentVersionTelemetryInitializerVersion aktualizuje vlastnost Component kontextu pro všechny položky telemetrie s hodnotou extrahovaná ze souboru vytvořeného BuildInfo.config nástrojem MS Build.

  • ClientIpHeaderTelemetryInitializerIp aktualizuje vlastnost Location kontextu všech položek telemetrie na X-Forwarded-For základě hlavičky HTTP požadavku.

  • DeviceTelemetryInitializer aktualizuje následující vlastnosti Device kontextu pro všechny položky telemetrie.

    • Type je nastavena na PChodnotu .
    • Id je nastaven na název domény počítače, na kterém je webová aplikace spuštěná.
    • OemName je nastavena na hodnotu extrahovaná z Win32_ComputerSystem.Manufacturer pole pomocí rozhraní WMI.
    • Model je nastavena na hodnotu extrahovaná z Win32_ComputerSystem.Model pole pomocí rozhraní WMI.
    • NetworkType je nastavena na hodnotu extrahovaná z NetworkInterface vlastnosti.
    • Language je nastaven na název CurrentCulture vlastnosti.
  • DomainNameRoleInstanceTelemetryInitializerRoleInstance aktualizuje vlastnost Device kontextu pro všechny položky telemetrie s názvem domény počítače, na kterém je webová aplikace spuštěná.

  • OperationNameTelemetryInitializerName aktualizuje vlastnost a Name vlastnost RequestTelemetryOperation kontextu všech položek telemetrie na základě metody HTTP a názvy kontroleru ASP.NET MVC a akci vyvolanou ke zpracování požadavku.

  • OperationIdTelemetryInitializer nebo OperationCorrelationTelemetryInitializer aktualizuje Operation.Id kontextovou vlastnost všech položek telemetrie sledovaných při zpracování požadavku s automaticky vygenerovaným RequestTelemetry.Id.

  • SessionTelemetryInitializerId aktualizuje vlastnost Session kontextu pro všechny položky telemetrie s hodnotou extrahovaná ze ai_session souboru cookie vygenerovaného kódem ApplicationInsights instrumentace JavaScript spuštěným v prohlížeči uživatele.

  • SyntheticTelemetryInitializernebo SyntheticUserAgentTelemetryInitializer aktualizuje Uservlastnosti a SessionOperation kontext všech položek telemetrie sledovaných při zpracování požadavku ze syntetického zdroje, jako je test dostupnosti nebo robot vyhledávacího webu. Průzkumník metrik ve výchozím nastavení nezobrazuje syntetickou telemetrii.

    Sada <Filters> identifikující vlastnosti požadavků.

  • UserTelemetryInitializerId aktualizuje a AcquisitionDate vlastnosti User kontextu pro všechny položky telemetrie s hodnotami extrahovanými ze ai_user souboru cookie vygenerovaného kódem instrumentace Aplikace Přehledy JavaScript spuštěný v prohlížeči uživatele.

  • WebTestTelemetryInitializer nastaví ID uživatele, ID relace a syntetické vlastnosti zdroje pro požadavky HTTP, které pocházejí z testů dostupnosti. Sada <Filters> identifikující vlastnosti požadavků.

Pro aplikace .NET spuštěné v Azure Service Fabric můžete zahrnout Microsoft.ApplicationInsights.ServiceFabric balíček NuGet. Tento balíček obsahuje FabricTelemetryInitializer vlastnost, která přidává vlastnosti Service Fabric k položkám telemetrie. Další informace najdete na stránce GitHubu o vlastnostech přidaných tímto balíčkem NuGet.

Procesory telemetrie (ASP.NET)

Procesory telemetrie můžou filtrovat a upravovat jednotlivé položky telemetrie před odesláním ze sady SDK na portál.

Můžete napsat vlastní procesory telemetrie.

Procesor telemetrie adaptivního vzorkování (od verze 2.0.0-beta3)

Tato funkce je ve výchozím nastavení povolená. Pokud vaše aplikace odesílá značnou telemetrii, tento procesor některé z nich odebere.


    <TelemetryProcessors>
      <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
        <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
      </Add>
    </TelemetryProcessors>

Parametr poskytuje cíl, kterého se algoritmus pokusí dosáhnout. Každá instance sady SDK funguje nezávisle. Takže pokud je váš server clusterem několika počítačů, skutečný objem telemetrie se odpovídajícím způsobem vynásobí.

Přečtěte si další informace o vzorkování.

Procesor telemetrie vzorkování s pevnou rychlostí (z verze 2.0.0-beta1)

K dispozici je také standardní procesor telemetrie vzorkování (od 2.0.1):


    <TelemetryProcessors>
     <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">

     <!-- Set a percentage close to 100/N where N is an integer. -->
     <!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
     <SamplingPercentage>10</SamplingPercentage>
     </Add>
   </TelemetryProcessors>

ConnectionString

Viz připojovací řetězec ukázky kódu.

InstrumentationKey

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.

Toto nastavení určuje prostředek aplikace Přehledy, ve kterém se zobrazují vaše data. Obvykle pro každou aplikaci vytvoříte samostatný prostředek se samostatným klíčem.

Pokud chcete klíč nastavit dynamicky, například pokud chcete odesílat výsledky z aplikace do různých prostředků, můžete klíč vynechat z konfiguračního souboru a nastavit ho v kódu.

Pokud chcete nastavit klíč pro všechny instance , včetně standardních TelemetryClientmodulů telemetrie, proveďte tento krok v inicializační metodě, například global.aspx.cs ve službě ASP.NET:

using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights;

    protected void Application_Start()
    {
        TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
        configuration.InstrumentationKey = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
        var telemetryClient = new TelemetryClient(configuration);

Pokud chcete odeslat konkrétní sadu událostí do jiného prostředku, můžete klíč pro konkrétního klienta telemetrie nastavit:


    var tc = new TelemetryClient();
    tc.Context.InstrumentationKey = "----- my key ----";
    tc.TrackEvent("myEvent");
    // ...

Nový klíč získáte tak, že na portálu Application Přehledy vytvoříte nový prostředek.

Zprostředkovatel ID aplikace

Poskytovatel je dostupný od verze 2.6.0.

Účelem tohoto poskytovatele je vyhledat ID aplikace na základě instrumentačního klíče. ID aplikace je součástí RequestTelemetry a DependencyTelemetry slouží k určení korelace na portálu.

Tato funkce je dostupná nastavením TelemetryConfiguration.ApplicationIdProvider v kódu nebo v konfiguračním souboru.

Rozhraní: IApplicationIdProvider

public interface IApplicationIdProvider
{
    bool TryGetApplicationId(string instrumentationKey, out string applicationId);
}

Poskytujeme dvě implementace v sadě Microsoft.Application Přehledy SDK: ApplicationInsightsApplicationIdProvider a DictionaryApplicationIdProvider.

Application Přehledy ApplicationIdProvider

Tento obálka je určená pro rozhraní API profilu. Omezí požadavky a výsledky mezipaměti.

Tento zprostředkovatel se přidá do konfiguračního souboru při instalaci microsoft.Application Přehledy. DependencyCollector nebo Microsoft.Application Přehledy. Web.

Tato třída má volitelnou vlastnost ProfileQueryEndpoint. Ve výchozím nastavení je nastavená na https://dc.services.visualstudio.com/api/profiles/{0}/appIdhodnotu . Pokud potřebujete pro tuto konfiguraci nakonfigurovat proxy server, doporučujeme, abyste zprostředkovali základní adresu a zahrnuli "/api/profiles/{0}/appId". Za {0} běhu na požadavek se nahradí instrumentačním klíčem.

Příklad konfigurace prostřednictvím aplikace Přehledy.config

<ApplicationInsights>
    ...
    <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights">
        <ProfileQueryEndpoint>https://dc.services.visualstudio.com/api/profiles/{0}/appId</ProfileQueryEndpoint>
    </ApplicationIdProvider>
    ...
</ApplicationInsights>

Příklad konfigurace prostřednictvím kódu

TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();

DictionaryApplicationIdProvider

Tento statický zprostředkovatel spoléhá na nakonfigurované páry ID instrumentačního klíče nebo aplikace.

Tato třída má Defined vlastnost, což je Dictionary<string,string> instrumentační klíč nebo dvojice ID aplikace.

Tato třída má volitelnou vlastnost Next, kterou lze použít ke konfiguraci jiného zprostředkovatele, který se má použít při vyžádání instrumentačního klíče, který v konfiguraci neexistuje.

Příklad konfigurace prostřednictvím aplikace Přehledy.config

<ApplicationInsights>
    ...
    <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.DictionaryApplicationIdProvider, Microsoft.ApplicationInsights">
        <Defined>
            <Type key="InstrumentationKey_1" value="ApplicationId_1"/>
            <Type key="InstrumentationKey_2" value="ApplicationId_2"/>
        </Defined>
        <Next Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights" />
    </ApplicationIdProvider>
    ...
</ApplicationInsights>

Příklad konfigurace prostřednictvím kódu

TelemetryConfiguration.Active.ApplicationIdProvider = new DictionaryApplicationIdProvider{
 Defined = new Dictionary<string, string>
    {
        {"InstrumentationKey_1", "ApplicationId_1"},
        {"InstrumentationKey_2", "ApplicationId_2"}
    }
};

Konfigurace kolekce snímků pro aplikace ASP.NET

Nakonfigurujte kolekci snímků pro ASP.NET aplikace.

Další kroky

Další informace o rozhraní API