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.
Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule
- Microsoft.Application Přehledy. Balíček NuGet DependencyCollector
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.
Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule
- Microsoft.Application Přehledy. Balíček NuGet PerfCounterCollector
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ě.
Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule
- Balíček NuGet systému Windows Server Přehledy aplikací
Sledování webových požadavků
Sledování webových požadavků hlásí dobu odezvy a kód výsledku požadavků HTTP.
Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule
- Microsoft.Application Přehledy. Balíček NuGet web
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.
Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule
- Microsoft.Application Přehledy. EventSourceListener
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.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule
- Microsoft.Application Přehledy. EtwCollector
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:
AccountIdTelemetryInitializer
AccountId
nastaví vlastnost.AuthenticatedUserIdTelemetryInitializer
AuthenticatedUserId
nastaví vlastnost nastavenou sadou JavaScript SDK.AzureRoleEnvironmentTelemetryInitializer
RoleName
aktualizuje aRoleInstance
vlastnostiDevice
kontextu pro všechny položky telemetrie s informacemi extrahovanými z prostředí modulu runtime Azure.BuildInfoConfigComponentVersionTelemetryInitializer
Version
aktualizuje vlastnostComponent
kontextu pro všechny položky telemetrie s hodnotou extrahovaná ze souboru vytvořenéhoBuildInfo.config
nástrojem MS Build.ClientIpHeaderTelemetryInitializer
Ip
aktualizuje vlastnostLocation
kontextu všech položek telemetrie naX-Forwarded-For
základě hlavičky HTTP požadavku.DeviceTelemetryInitializer
aktualizuje následující vlastnostiDevice
kontextu pro všechny položky telemetrie.Type
je nastavena naPC
hodnotu .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á zWin32_ComputerSystem.Manufacturer
pole pomocí rozhraní WMI.Model
je nastavena na hodnotu extrahovaná zWin32_ComputerSystem.Model
pole pomocí rozhraní WMI.NetworkType
je nastavena na hodnotu extrahovaná zNetworkInterface
vlastnosti.Language
je nastaven na názevCurrentCulture
vlastnosti.
DomainNameRoleInstanceTelemetryInitializer
RoleInstance
aktualizuje vlastnostDevice
kontextu pro všechny položky telemetrie s názvem domény počítače, na kterém je webová aplikace spuštěná.OperationNameTelemetryInitializer
Name
aktualizuje vlastnost aName
vlastnostRequestTelemetry
Operation
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
neboOperationCorrelationTelemetryInitializer
aktualizujeOperation.Id
kontextovou vlastnost všech položek telemetrie sledovaných při zpracování požadavku s automaticky vygenerovanýmRequestTelemetry.Id
.SessionTelemetryInitializer
Id
aktualizuje vlastnostSession
kontextu pro všechny položky telemetrie s hodnotou extrahovaná zeai_session
souboru cookie vygenerovaného kódemApplicationInsights
instrumentace JavaScript spuštěným v prohlížeči uživatele.SyntheticTelemetryInitializer
neboSyntheticUserAgentTelemetryInitializer
aktualizujeUser
vlastnosti aSession
Operation
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ů.UserTelemetryInitializer
Id
aktualizuje aAcquisitionDate
vlastnostiUser
kontextu pro všechny položky telemetrie s hodnotami extrahovanými zeai_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 TelemetryClient
modulů 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}/appId
hodnotu . 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.