Az Alkalmazás Elemzések SDK konfigurálása az Application Elemzések.config vagy .xml
Az application Elemzések .NET SDK számos NuGet-csomagból áll. Az alapcsomag biztosítja az API-t, amely telemetriát küld az alkalmazásnak Elemzések. További csomagok telemetriai modulokat és inicializálókat biztosítanak az alkalmazásból és környezetéből származó telemetriai adatok automatikus nyomon követéséhez. A konfigurációs fájl módosításával engedélyezheti vagy letilthatja a telemetriai modulokat és inicializálókat. Néhány paramétert is beállíthat.
Feljegyzés
Az alábbi dokumentáció az Alkalmazás Elemzések klasszikus API-ra támaszkodik. Az Alkalmazás Elemzések hosszú távú terve az Adatok gyűjtése Az OpenTelemetria használatával. További információ: Az Azure Monitor OpenTelemetria engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz.
A konfigurációs fájl neve vagy ApplicationInsights.xml
neve ApplicationInsights.config
. A név az alkalmazás típusától függ. A rendszer automatikusan hozzáadja a projekthez az SDK legtöbb verziójának telepítésekor. Alapértelmezés szerint az Alkalmazás hozzáadása>Elemzések telemetriát támogató Visual Studio-sablonprojektek automatizált felületének használatakor a ApplicationInsights.config
fájl a projekt gyökérmappájában jön létre. Fordításkor a rendszer a bin mappába másolja. Az Alkalmazás Elemzések-ügynök hozzáadja egy webalkalmazáshoz egy IIS-kiszolgálón. A konfigurációs fájl figyelmen kívül lesz hagyva, ha az Azure-webhelyek bővítményét vagy az Azure-beli virtuális gépek és virtuálisgép-méretezési csoportok bővítményét használja.
A weblap SDK-jának szabályozásához nincs megfelelő fájl.
Ez a cikk ismerteti a konfigurációs fájlban látható szakaszokat, az SDK összetevőinek vezérlését, és hogy mely NuGet-csomagok töltik be ezeket az összetevőket.
Feljegyzés
Az ApplicationInsights.config
és .xml utasítások nem vonatkoznak a .NET Core SDK-ra. A .NET Core-alkalmazások konfigurálásához kövesse az Alkalmazás Elemzések ASP.NET Core-alkalmazásokra vonatkozó utasításait.
Telemetriai modulok (ASP.NET)
Minden telemetriai modul egy adott adattípust gyűjt, és az alapvető API használatával küldi el az adatokat. A modulokat különböző NuGet-csomagok telepítik, amelyek a szükséges sorokat is hozzáadják a .config fájlhoz.
Minden modulhoz tartozik egy csomópont a konfigurációs fájlban. Egy modul letiltásához törölje a csomópontot, vagy fűzzön hozzá megjegyzést.
Függőség nyomon követése
A függőségek nyomon követése telemetriát gyűjt az alkalmazás által az adatbázisokba, külső szolgáltatásokba és adatbázisokba irányuló hívásokról. Ahhoz, hogy ez a modul egy IIS-kiszolgálón működjön, telepítenie kell az Application Elemzések Agentet.
Saját függőségkövetési kódot is írhat a TrackDependency API használatával.
Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule
- Microsoft.Application Elemzések. DependencyCollector NuGet-csomag
A függőségek az ügynökalapú (kód nélküli) csatolással automatikusancolhatók anélkül, hogy módosítanák a kódot. Ha azure-webalkalmazásokban szeretné használni, engedélyezze az Alkalmazás Elemzések bővítményt. Ha Azure-beli virtuális gépen vagy Azure-beli virtuálisgép-méretezési csoportban szeretné használni, engedélyezze az Alkalmazásfigyelés bővítményt virtuális gépekhez és virtuálisgép-méretezési csoportokhoz.
Teljesítménygyűjtő
A teljesítménygyűjtő összegyűjti a rendszer teljesítményszámlálóit, például a CPU-t, a memóriát és a hálózati terhelést az IIS-telepítésekből. Megadhatja, hogy mely számlálókat gyűjtse össze, beleértve a saját maga által beállított teljesítményszámlálókat is.
Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule
- Microsoft.Application Elemzések. PerfCounterCollector NuGet-csomag
Alkalmazás Elemzések diagnosztikai telemetriai adatai
Az DiagnosticsTelemetryModule
osztály az alkalmazás Elemzések rendszerállapot-kód hibáit jelenti. Ilyen például, ha a kód nem fér hozzá a teljesítményszámlálókhoz, vagy ITelemetryInitializer
kivételt jelez. A modul által követett nyomkövetési telemetria megjelenik a Diagnosztikai keresésben.
Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule
- Microsoft.Application Elemzések NuGet-csomag. Ha csak ezt a csomagot telepíti, az alkalmazás Elemzések.config fájl nem jön létre automatikusan.
Fejlesztői mód
Az DeveloperModeWithDebuggerAttachedTelemetryModule
osztály arra kényszeríti az alkalmazás ElemzésekTelemetryChannel
, hogy azonnal küldjön adatokat, egyszerre egy telemetriai elemet, amikor egy hibakereső csatlakozik az alkalmazás folyamatához. Ez a kialakítás csökkenti az alkalmazás telemetriai adatainak nyomon követése és az Alkalmazás Elemzések portálon való megjelenése közötti időt. Jelentős többletterhelést okoz a processzor- és hálózati sávszélességben.
Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule
- Alkalmazás Elemzések Windows Server NuGet-csomag
Webes kérések nyomon követése
A webes kérések nyomon követése a HTTP-kérések válaszidejének és eredménykódjának jelentését jelenti.
Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule
- Microsoft.Application Elemzések. Webes NuGet-csomag
Kivételkövetés
Az ExceptionTrackingTelemetryModule
osztály nyomon követi a nem kezelt kivételeket a webalkalmazásban. További információ: Hibák és kivételek.
Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule
.- Microsoft.Application Elemzések. Webes NuGet-csomag.
Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule
: Nyomon követi a nem figyelt tevékenységet. Kivételek.Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule
: Nyomon követi a feldolgozói szerepkörök, a Windows-szolgáltatások és a konzolalkalmazások kezeletlen kivételét.- Alkalmazás Elemzések Windows Server NuGet-csomag.
EventSource-nyomkövetés
Az EventSourceTelemetryModule
osztály lehetővé teszi eventSource-események konfigurálását, hogy nyomkövetésként küldhetők legyenek az alkalmazásnak Elemzések. Az EventSource-események nyomon követésével kapcsolatos információkért lásd: EventSource-események használata.
Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule
- Microsoft.Application Elemzések. EventSourceListener
ETW eseménykövetés
Az EtwCollectorTelemetryModule
osztály lehetővé teszi, hogy konfigurálja az ETW-szolgáltatóktól származó eseményeket, hogy nyomkövetésként elküldhetők legyenek az Alkalmazás Elemzések. Az ETW-események nyomon követésével kapcsolatos információkért lásd : ETW-események használata.
Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule
- Microsoft.Application Elemzések. EtwCollector
Microsoft.Application Elemzések
A Microsoft.ApplicationInsights
csomag biztosítja az SDK alapvető API-ját . A többi telemetriai modul ezt az API-t használja. Azt is használhatja, hogy meghatározza a saját telemetriai.
- Nincs bejegyzés az Application Elemzések.config alkalmazásban.
- Microsoft.Application Elemzések NuGet-csomag. Ha csak ezt a NuGetet telepíti, a rendszer nem hoz létre .config fájlt.
Telemetriai csatorna
A telemetriai csatorna kezeli a telemetria pufferelését és átvitelét az Application Elemzések szolgáltatásba.
Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel
a webalkalmazások alapértelmezett csatornája. Puffereli az adatokat a memóriában, és újrapróbálkozási mechanizmusokat és helyi lemeztárolókat alkalmaz a megbízhatóbb telemetriai kézbesítés érdekében.Microsoft.ApplicationInsights.InMemoryChannel
egy egyszerűsített telemetriai csatorna. Akkor használatos, ha nincs más csatorna konfigurálva.
Telemetriai inicializálók (ASP.NET)
A telemetriai inicializálók a telemetria minden elemével együtt elküldik a környezeti tulajdonságokat.
A környezettulajdonságok beállításához saját inicializálókat is írhat.
A standard inicializálókat a webes vagy a WindowsServer NuGet-csomagok állítják be:
AccountIdTelemetryInitializer
beállítja a tulajdonságotAccountId
.AuthenticatedUserIdTelemetryInitializer
A tulajdonságot aAuthenticatedUserId
JavaScript SDK által beállított módon állítja be.AzureRoleEnvironmentTelemetryInitializer
RoleName
az Azure futtatókörnyezetből kinyert információkkal frissíti azDevice
összes telemetriai elem környezetét ésRoleInstance
tulajdonságait.BuildInfoConfigComponentVersionTelemetryInitializer
Version
az MS Build által létrehozott fájlbólBuildInfo.config
kinyert értékkel frissíti azComponent
összes telemetriai elem környezetének tulajdonságát.ClientIpHeaderTelemetryInitializer
frissíti azIp
Location
összes telemetriai elem környezetének tulajdonságát aX-Forwarded-For
kérelem HTTP-fejléce alapján.DeviceTelemetryInitializer
az összes telemetriai elem környezeténekDevice
alábbi tulajdonságait frissíti.Type
beállítás értéke :PC
.Id
annak a számítógépnek a tartományneve, amelyen a webalkalmazás fut.OemName
a WMI használatával aWin32_ComputerSystem.Manufacturer
mezőből kinyert értékre van állítva.Model
a WMI használatával aWin32_ComputerSystem.Model
mezőből kinyert értékre van állítva.NetworkType
a tulajdonságbólNetworkInterface
kinyert értékre van állítva.Language
a tulajdonság nevéreCurrentCulture
van állítva.
DomainNameRoleInstanceTelemetryInitializer
frissíti azRoleInstance
Device
összes telemetriai elem környezetének tulajdonságát annak a számítógépnek a tartománynevével, amelyen a webalkalmazás fut.OperationNameTelemetryInitializer
frissíti azName
összes telemetriai elem tulajdonságátRequestTelemetry
ésName
tulajdonságátOperation
a HTTP-metódus alapján, valamint a kérés feldolgozásához meghívott ASP.NET MVC-vezérlő és művelet nevét.OperationIdTelemetryInitializer
vagyOperationCorrelationTelemetryInitializer
frissíti azOperation.Id
összes nyomon követett telemetriai elem környezeti tulajdonságát, miközben az automatikusan létrehozottRequestTelemetry.Id
kérést kezeli.SessionTelemetryInitializer
frissíti aId
környezet tulajdonságát aSession
felhasználó böngészőjében futó JavaScript-rendszerállapotkód által létrehozott cookie-bólai_session
ApplicationInsights
kinyert értékkel rendelkező összes telemetriai elem esetében.SyntheticTelemetryInitializer
vagySyntheticUserAgentTelemetryInitializer
frissíti azUser
összes követett telemetriai elem,Session
például a rendelkezésre állási teszt vagyOperation
a keresőmotor-robot kéréseinek kezelésekor nyomon követett telemetriai elemek, illetve a környezet tulajdonságait. Alapértelmezés szerint a Metrikák kezelője nem jelenít meg szintetikus telemetriát.A
<Filters>
kérések tulajdonságait azonosító készlet.UserTelemetryInitializer
frissíti azId
User
összes telemetriai elem környezetét ésAcquisitionDate
tulajdonságait a felhasználó böngészőjében futó Alkalmazás Elemzések JavaScript-eszközkód által létrehozott cookie-bólai_user
kinyert értékekkel.WebTestTelemetryInitializer
A rendelkezésre állási tesztekből származó HTTP-kérelmek felhasználói azonosítóját, munkamenet-azonosítóját és szintetikus forrástulajdonságait állítja be. A<Filters>
kérések tulajdonságait azonosító készlet.
Az Azure Service Fabricben futó .NET-alkalmazásokhoz a NuGet-csomagot is belefoglalhatja Microsoft.ApplicationInsights.ServiceFabric
. Ez a csomag tartalmaz egy tulajdonságot FabricTelemetryInitializer
, amely Service Fabric-tulajdonságokat ad hozzá a telemetriai elemekhez. További információt a NuGet-csomag által hozzáadott tulajdonságokról a GitHub oldalán talál .
Telemetriai processzorok (ASP.NET)
A telemetriai processzorok szűrhetik és módosíthatják az egyes telemetriai elemeket, mielőtt az SDK-ból a portálra küldené őket.
Saját telemetriai processzorokat is írhat.
Adaptív mintavételezési telemetriafeldolgozó (2.0.0-béta3-tól)
Ez a funkció alapértelmezés szerint engedélyezve van. Ha az alkalmazás jelentős telemetriát küld, ez a processzor eltávolít belőle néhányat.
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
</Add>
</TelemetryProcessors>
A paraméter megadja az algoritmus által elérni kívánt célt. Az SDK minden példánya egymástól függetlenül működik. Ha tehát a kiszolgáló több gépből álló fürt, a rendszer ennek megfelelően megszorozza a telemetriai adatok tényleges mennyiségét.
További információ a mintavételezésről.
Rögzített sebességű mintavételezési telemetriafeldolgozó (2.0.0-béta1-től)
Van egy szabványos mintavételezési telemetriai processzor is (2.0.1-től):
<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>
Csatlakozás ionString
Lásd kapcsolati sztring kódmintákat.
InstrumentationKey
Feljegyzés
2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.
Ez a beállítás határozza meg az alkalmazás Elemzések erőforrást, amelyben az adatok megjelennek. Általában minden alkalmazáshoz külön erőforrást hoz létre, külön kulccsal.
Ha például dinamikusan szeretné beállítani a kulcsot, például ha az alkalmazásból szeretne eredményeket küldeni különböző erőforrásokba, kihagyhatja a kulcsot a konfigurációs fájlból, és ehelyett kódban állíthatja be.
Ha az összes példány kulcsát TelemetryClient
be szeretné állítani , beleértve a standard telemetriai modulokat is, hajtsa végre ezt a lépést egy inicializálási módszerben, például global.aspx.cs egy ASP.NET szolgáltatásban:
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);
Ha egy adott eseménykészletet szeretne elküldeni egy másik erőforrásnak, beállíthatja egy adott telemetriai ügyfél kulcsát:
var tc = new TelemetryClient();
tc.Context.InstrumentationKey = "----- my key ----";
tc.TrackEvent("myEvent");
// ...
Új kulcs beszerzéséhez hozzon létre egy új erőforrást az Alkalmazás Elemzések portálon.
ApplicationId-szolgáltató
A szolgáltató a 2.6.0-s verziótól érhető el.
Ennek a szolgáltatónak az a célja, hogy egy eszközkulcson alapuló alkalmazásazonosítót keressen. Az alkalmazásazonosító szerepel a RequestTelemetry
portálon, és DependencyTelemetry
a korreláció meghatározására szolgál.
Ez a funkció a kódban vagy a konfigurációs fájlban való beállítással TelemetryConfiguration.ApplicationIdProvider
érhető el.
Interfész: IApplicationIdProvider
public interface IApplicationIdProvider
{
bool TryGetApplicationId(string instrumentationKey, out string applicationId);
}
Két implementációt biztosítunk a Microsoft.Application Elemzések SDK-ban: ApplicationInsightsApplicationIdProvider
és DictionaryApplicationIdProvider
.
Alkalmazás Elemzések ApplicationIdProvider
Ez a burkoló a Profil API-hoz készült. Ez szabályozza a kéréseket és a gyorsítótár eredményeit.
Ez a szolgáltató a Microsoft.Application telepítésekor hozzáadódik a konfigurációs fájlhoz Elemzések. DependencyCollector vagy Microsoft.Application Elemzések. Web.
Ez az osztály nem kötelező tulajdonságú ProfileQueryEndpoint
. Alapértelmezés szerint a következőre https://dc.services.visualstudio.com/api/profiles/{0}/appId
van állítva: . Ha proxyt kell konfigurálnia ehhez a konfigurációhoz, javasoljuk, hogy proxyként adja meg az alapcímet, és adja meg azokat "/api/profiles/{0}/appId"
. Az A {0}
modul futásidőben, kérésenként a rendszerállapot-kulccsal helyettesíthető.
Példakonfiguráció alkalmazáson keresztül Elemzések.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élda a kódon keresztüli konfigurációra
TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();
DictionaryApplicationIdProvider
Ez a statikus szolgáltató a konfigurált rendszerállapotkulcs-/alkalmazásazonosító-párokra támaszkodik.
Ez az osztály rendelkezik a Defined
tulajdonságával, amely Dictionary<string,string>
a rendszerállapotkulcs-/alkalmazásazonosító-párok egyike.
Ez az osztály rendelkezik az opcionális tulajdonságkal Next
, amely egy másik szolgáltató konfigurálására használható, ha olyan rendszerállapotkulcsot kér, amely nem létezik a konfigurációban.
Példakonfiguráció alkalmazáson keresztül Elemzések.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élda a kódon keresztüli konfigurációra
TelemetryConfiguration.Active.ApplicationIdProvider = new DictionaryApplicationIdProvider{
Defined = new Dictionary<string, string>
{
{"InstrumentationKey_1", "ApplicationId_1"},
{"InstrumentationKey_2", "ApplicationId_2"}
}
};
Pillanatkép-gyűjtemény konfigurálása ASP.NET alkalmazásokhoz
Pillanatkép-gyűjtemény konfigurálása ASP.NET alkalmazásokhoz.