Konfigurace sady Application Insights SDK pomocí souboru ApplicationInsights.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 a nastavit pro některé z nich parametry.
Konfigurační soubor je pojmenovaný ApplicationInsights.config
nebo ApplicationInsights.xml
v závislosti na typu vaší aplikace. Při instalaci většiny verzí sady SDK se automaticky přidá do projektu. Při použití automatizovaného prostředí z projektů šablon Visual Studio, které podporují přidání > telemetrie aplikace Přehledy telemetrie, se soubor ApplicationInsights.config vytvoří v kořenové složce projektu a při kompilaci se zkopíruje do složky bin. Přidá se také do webové aplikace monitorováním stavu na serveru IIS. Konfigurační soubor se ignoruje, pokud se používá rozšíření webu Neborozšíření Azure pro virtuální počítač Azure a škálovací sada virtuálních počítačů .
Neexistuje ekvivalentní soubor pro řízení sady SDK na webové stránce.
Tento dokument popisuje oddíly, které vidíte v konfiguračním souboru, jak řídí komponenty sady SDK a které NuGet balíčky načítají.
Poznámka
pokyny ApplicationInsights.config a .xml se nevztahují na sadu .NET Core SDK. Pro konfiguraci aplikací .NET Core postupujte podle tohoto průvodce.
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 .config souboru.
V konfiguračním souboru pro každý modul je uzel. Pokud chcete modul zakázat, odstraňte uzel nebo ho zakomentujte.
Sledování závislostí
Sledování závislostí shromažďuje telemetrii o voláních vaší aplikace do databází a externích služeb a databází. Pokud chcete, aby tento modul fungoval na serveru SLUŽBY IIS, musíte nainstalovat Monitorování stavu.
Můžete také napsat vlastní kód sledování závislostí pomocí rozhraní TRACKDependency API.
Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule
- Balíček microsoft.ApplicationInsights.DependencyCollector NuGet.
Závislosti je možné automaticky shromažďovat bez úpravy 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í Přehledy aplikace. Pokud ho chcete použít ve škálovací sadě virtuálních počítačů Azure nebo ve škálovací sadě virtuálních počítačů Azure, povolte rozšíření Application Monitoring pro virtuální počítač a škálovací sadu virtuálních počítačů.
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
- Balíček Microsoft.ApplicationInsights.PerfCounterCollector NuGet.
Telemetrie diagnostiky Přehledy aplikací
Zprávy DiagnosticsTelemetryModule
o chybách v samotném kódu instrumentace aplikace Přehledy. Pokud například 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í ve vyhledávání diagnostiky.
* `Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule`
* [Microsoft.ApplicationInsights](https://www.nuget.org/packages/Microsoft.ApplicationInsights) NuGet package. If you only install this package, the ApplicationInsights.config file is not automatically created.
Režim vývojáře
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ýznamnou režii při využití procesoru a šířky pásma sítě.
Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule
- Balíček NuGet serveru Přehledy Windows aplikace
Sledování webových požadavků
Hlásí dobu odezvy a kód výsledku požadavků HTTP.
Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule
- Balíček Microsoft.ApplicationInsights.Web NuGet
Sledování výjimek
ExceptionTrackingTelemetryModule
sleduje neošetřené výjimky ve webové aplikaci. Podívejte se na chyby a výjimky.
Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule
- Balíček Microsoft.ApplicationInsights.Web NuGet
Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule
– sleduje neoobslužné výjimky úkolů.Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule
– sleduje neošetřené výjimky pro role pracovních procesů, služby Windows a konzolové aplikace.- Balíček NuGet serveru Přehledy Windows aplikace.
Sledování služby EventSource
EventSourceTelemetryModule
umožňuje nakonfigurovat události EventSource tak, aby se odesílaly do aplikace Přehledy jako trasování. Informace o sledování událostí EventSource najdete v tématu Použití událostí EventSource.
Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule
- Microsoft.ApplicationInsights.EventSourceListener
Sledování událostí etW
EtwCollectorTelemetryModule
umožňuje konfigurovat události od poskytovatelů etW, které se mají odesílat do aplikace Přehledy jako trasování. Informace o sledování událostí ETW najdete v tématu Použití událostí etW.
Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule
- Microsoft.ApplicationInsights.EtwCollector
Microsoft.ApplicationInsights
Balíček Microsoft.ApplicationInsights poskytuje základní rozhraní API sady SDK. Ostatní moduly telemetrie používají toto rozhraní API a můžete ho také použít k definování vlastní telemetrie.
- V ApplicationInsights.config není žádná položka.
- Balíček Microsoft.ApplicationInsights NuGet. Pokud jste tento NuGet právě nainstalovali, 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 webových aplikací. Uloží data do 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, který se používá, 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í vlastností kontextu.
Standardní inicializátory jsou všechny nastavené balíčky Web nebo WindowsServer NuGet:
AccountIdTelemetryInitializer
nastaví vlastnost AccountId.AuthenticatedUserIdTelemetryInitializer
Nastaví vlastnost AuthenticatedUserId nastavenou sadou JavaScript SDK.AzureRoleEnvironmentTelemetryInitializer
RoleName
aktualizuje kontext 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á zeBuildInfo.config
souboru vytvořeného nástrojem MS Build.ClientIpHeaderTelemetryInitializer
aktualizujeIp
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 nastavená na "PC"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
.Language
je nastaven na název .CurrentCulture
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 také názvy ASP.NET kontroleru MVC a akce vyvolány pro zpracování požadavku.OperationIdTelemetryInitializer
neboOperationCorrelationTelemetryInitializer
aktualizujeOperation.Id
kontextovou vlastnost všechpoložekchRequestTelemetry.Id
SessionTelemetryInitializer
Id
aktualizuje vlastnostSession
kontextu pro všechny položky telemetrie s hodnotou extrahovaná zeai_session
souboru cookie vygenerovaného kódem instrumentace ApplicationInsights JavaScript spuštěným v prohlížeči uživatele.SyntheticTelemetryInitializer
neboSyntheticUserAgentTelemetryInitializer
aktualizujeUser
vlastnosti ,Session
aOperation
kontexty všech položek telemetrie sledované při zpracování požadavku ze syntetického zdroje, jako je test dostupnosti nebo robot vyhledávacího stroje. 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 aplikací Přehledy kód instrumentace 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ů.
U aplikací .NET spuštěných v Service Fabric můžete zahrnout Microsoft.ApplicationInsights.ServiceFabric
balíček NuGet. Tento balíček obsahuje vlastnost FabricTelemetryInitializer
Service Fabric k položkám telemetrie. Další informace najdete na stránce GitHub o vlastnostech přidaných tímto balíčkem NuGet.
Procesory telemetrie (ASP.NET)
Procesory telemetrie můžou filtrovat a upravovat každou položku telemetrie těsně před odesláním ze sady SDK na portál.
Můžete napsat vlastní procesory telemetrie.
Procesor telemetrie adaptivního vzorkování (z verze 2.0.0-beta3)
Tato funkce je ve výchozím nastavení povolená. Pokud vaše aplikace odesílá značnou telemetrii, odebere tento procesor některé z nich.
<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)
Existuje 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
Ukázky kódu připojovacího řetězce
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 této funkce. Přechod na připojovací řetězce , abyste mohli využívat nové funkce.
Toto nastavení určuje prostředek aplikace Přehledy, ve kterém se zobrazí vaše data. Obvykle vytvoříte samostatný prostředek s samostatným klíčem pro každou z vašich aplikací.
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 TelemetryClient, včetně standardních modulů telemetrie. Tento krok proveďte 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 jenom odeslat konkrétní sadu událostí do jiného prostředku, můžete klíč pro konkrétní TelemetryClient nastavit:
var tc = new TelemetryClient();
tc.Context.InstrumentationKey = "----- my key ----";
tc.TrackEvent("myEvent");
// ...
Pokud chcete získat nový klíč, vytvořte nový prostředek na portálu Přehledy aplikace.
Zprostředkovatel ID aplikace
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 a slouží k určení korelace na portálu.
Tato funkce je dostupná nastavením TelemetryConfiguration.ApplicationIdProvider
v kódu nebo v konfiguraci.
Rozhraní: IApplicationIdProvider
public interface IApplicationIdProvider
{
bool TryGetApplicationId(string instrumentationKey, out string applicationId);
}
Poskytujeme dvě implementace v sadě Microsoft.ApplicationInsights SDK: ApplicationInsightsApplicationIdProvider
a DictionaryApplicationIdProvider
.
ApplicationInsightsApplicationIdProvider
Tento obálka je určená pro rozhraní API profilu. Omezí požadavky a výsledky mezipaměti.
Tento poskytovatel se přidá do konfiguračního souboru při instalaci Microsoft.ApplicationInsights.DependencyCollector nebo Microsoft.ApplicationInsights.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
.
Pokud potřebujete pro tuto konfiguraci nakonfigurovat proxy server, doporučujeme proxy server základní adresu a včetně "/api/profiles//{0}appId". Za{0} běhu se za každou žádost nahradí instrumentačním klíčem.
Příklad konfigurace prostřednictvím ApplicationInsights.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ý poskytovatel spoléhá na nakonfigurované páry instrumentačního klíče nebo ID aplikace.
Tato třída má vlastnost Defined
, což je řetězec slovníku<, řetězec> instrumentačního klíče k párům ID aplikace.
Tato třída má volitelnou vlastnost Next
, kterou lze použít ke konfiguraci jiného poskytovatele, který se má použít, když je požadován instrumentační klíč, který neexistuje ve vaší konfiguraci.
Příklad konfigurace prostřednictvím ApplicationInsights.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
Konfigurace kolekce snímků pro aplikace ASP.NET