Application Insights SDK'sını ApplicationInsights.config veya .xml ile yapılandırma
Application Insights .NET SDK'sı birçok NuGet paketinden oluşur. Çekirdek paket, Application Insights'a telemetri göndermek için API'yi sağlar. Daha fazla paket , uygulamanızdan ve bağlamından telemetriyi otomatik olarak izlemek için telemetri modülleri ve başlatıcılar sağlar. Yapılandırma dosyasını ayarlayarak telemetri modüllerini ve başlatıcıları etkinleştirebilir veya devre dışı bırakabilirsiniz. Bazıları için de parametre ayarlayabilirsiniz.
Yapılandırma dosyası veya ApplicationInsights.xml
olarak adlandırılırApplicationInsights.config
. Ad, uygulamanızın türüne bağlıdır. SDK'nın çoğu sürümünü yüklediğinizde projenize otomatik olarak eklenir. Varsayılan olarak,Application Insights TelemetrisiEkle'yi> destekleyen Visual Studio şablon projelerinden otomatik deneyimi kullandığınızda, ApplicationInsights.config
dosya proje kök klasöründe oluşturulur. Derlendiğinde, bin klasörüne kopyalanır. Ayrıca bir IIS sunucusundaki Durum İzleyicisi tarafından bir web uygulamasına eklenir. Azure web siteleri için uzantı veya AzureVM'leri ve sanal makine ölçek kümeleri uzantısı kullanılırsa yapılandırma dosyası yoksayılır.
Bir web sayfasında SDK'yi denetlemek için eşdeğer bir dosya yoktur.
Bu makalede yapılandırma dosyasında gördüğünüz bölümler, BUNLARıN SDK bileşenlerini nasıl denetledikleri ve bu bileşenleri hangi NuGet paketlerinin yüklediği açıklanmaktadır.
Not
ApplicationInsights.config
ve .xml yönergeleri .NET Core SDK'sı için geçerli değildir. .NET Core uygulamalarını yapılandırmak için ASP.NET Core uygulamaları için Application Insights'taki yönergeleri izleyin.
Telemetri modülleri (ASP.NET)
Her telemetri modülü belirli bir veri türünü toplar ve verileri göndermek için çekirdek API'yi kullanır. Modüller, .config dosyasına gerekli satırları da ekleyen farklı NuGet paketleri tarafından yüklenir.
Yapılandırma dosyasında her modül için bir düğüm bulunur. Bir modülü devre dışı bırakmak için düğümü silin veya açıklama satırı yapın.
Bağımlılık izleme
Bağımlılık izleme , uygulamanızın veritabanlarına, dış hizmetlere ve veritabanlarına yaptığı çağrılar hakkında telemetri toplar. Bu modülün bir IIS sunucusunda çalışmasına izin vermek için Durum İzleyicisi'ni yüklemeniz gerekir.
TrackDependency API'sini kullanarak kendi bağımlılık izleme kodunuzu da yazabilirsiniz.
Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule
- Microsoft.ApplicationInsights.DependencyCollector NuGet paketi
Bağımlılıklar, aracı tabanlı (kodsuz) ekleme kullanılarak kodunuzu değiştirmeden otomatik olarak birleştirilebilir. Azure web uygulamalarında kullanmak için Application Insights uzantısını etkinleştirin. Bunu bir Azure VM veya Azure sanal makine ölçek kümesinde kullanmak için VM'ler ve sanal makine ölçek kümeleri için Uygulama İzleme uzantısını etkinleştirin.
Performans toplayıcı
Performans toplayıcıSı, IIS yüklemelerinden CPU, bellek ve ağ yükü gibi sistem performans sayaçlarını toplar. Kendi ayarladığınız performans sayaçları da dahil olmak üzere hangi sayaçların toplandığını belirtebilirsiniz.
Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule
- Microsoft.ApplicationInsights.PerfCounterCollector NuGet paketi
Application Insights tanılama telemetrisi
sınıfı, DiagnosticsTelemetryModule
Application Insights izleme kodundaki hataları bildirir. Örnek olarak kodun performans sayaçlarına erişip erişemediğini veya ITelemetryInitializer
özel durum oluşturabilmesi verilebilir. Bu modül tarafından izlenen izleme telemetrisi Tanılama Aramasında görünür.
Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule
- Microsoft.ApplicationInsights NuGet paketi. Yalnızca bu paketi yüklerseniz, ApplicationInsights.config dosyası otomatik olarak oluşturulmaz.
Geliştirici modu
sınıfı Application Insights'ı DeveloperModeWithDebuggerAttachedTelemetryModule
TelemetryChannel
, bir hata ayıklayıcısı uygulama işlemine eklendiğinde her seferinde bir telemetri öğesi olan verileri hemen göndermeye zorlar. Bu tasarım, uygulamanızın telemetriyi izlediği an ile Application Insights portalında görünmesi arasındaki süreyi azaltır. CPU ve ağ bant genişliği konusunda önemli ek yüke neden olur.
Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule
- Application Insights Windows Server NuGet paketi
Web isteği izleme
Web isteği izleme, HTTP isteklerinin yanıt süresini ve sonuç kodunu bildirir.
Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule
- Microsoft.ApplicationInsights.Web NuGet paketi
Özel durum izleme
sınıfı web ExceptionTrackingTelemetryModule
uygulamanızdaki işlenmeyen özel durumları izler. Daha fazla bilgi için bkz . Hatalar ve özel durumlar.
Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule
.- Microsoft.ApplicationInsights.Web NuGet paketi.
Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule
: Gözlemlenmeyen görevi izler. Özel durum.Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule
: Çalışan rolleri, Windows hizmetleri ve konsol uygulamaları için işlenmeyen özel durumları izler.- Application Insights Windows Server NuGet paketi.
EventSource izleme
sınıfı, EventSourceTelemetryModule
EventSource olaylarını Application Insights'a izleme olarak gönderilecek şekilde yapılandırmanıza olanak tanır. EventSource olaylarını izleme hakkında bilgi için bkz. EventSource olaylarını kullanma.
Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule
- Microsoft.ApplicationInsights.EventSourceListener
ETW olay izleme
sınıfı, EtwCollectorTelemetryModule
ETW sağlayıcılarından gelen olayları izleme olarak Application Insights'a gönderilecek şekilde yapılandırmanıza olanak tanır. ETW olaylarını izleme hakkında bilgi için bkz. ETW olaylarını kullanma.
Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule
- Microsoft.ApplicationInsights.EtwCollector
Microsoft.ApplicationInsights
Paket, Microsoft.ApplicationInsights
SDK'nın temel API'sini sağlar. Diğer telemetri modülleri bu API'yi kullanır. Kendi telemetrinizi tanımlamak için de kullanabilirsiniz.
- ApplicationInsights.config giriş yok.
- Microsoft.ApplicationInsights NuGet paketi. Yalnızca bu NuGet'i yüklerseniz .config dosyası oluşturulmaz.
Telemetri kanalı
Telemetri kanalı, telemetrinin Application Insights hizmetine arabelleğe alınıp iletilmesini yönetir.
Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel
, web uygulamaları için varsayılan kanaldır. Verileri bellekte arabelleğe alır ve daha güvenilir telemetri teslimi için yeniden deneme mekanizmaları ve yerel disk depolama kullanır.Microsoft.ApplicationInsights.InMemoryChannel
basit bir telemetri kanalıdır. Başka bir kanal yapılandırılmamışsa kullanılır.
Telemetri başlatıcıları (ASP.NET)
Telemetri başlatıcıları, her telemetri öğesiyle birlikte gönderilen bağlam özelliklerini ayarlar.
Bağlam özelliklerini ayarlamak için kendi başlatıcılarınızı yazabilirsiniz .
Standart başlatıcıların tümü web veya WindowsServer NuGet paketleri tarafından ayarlanır:
AccountIdTelemetryInitializer
AccountId
özelliğini ayarlar.AuthenticatedUserIdTelemetryInitializer
AuthenticatedUserId
Özelliği JavaScript SDK'sı tarafından ayarlandığı şekilde ayarlar.AzureRoleEnvironmentTelemetryInitializer
RoleName
Tüm telemetri öğeleri için bağlamınDevice
veRoleInstance
özelliklerini Azure çalışma zamanı ortamından ayıklanan bilgilerle güncelleştirir.BuildInfoConfigComponentVersionTelemetryInitializer
Version
tüm telemetri öğeleri için bağlamınComponent
özelliğini MS Build tarafından oluşturulan dosyadanBuildInfo.config
ayıklanan değerle güncelleştirir.ClientIpHeaderTelemetryInitializer
Ip
, isteğinLocation
HTTP üst bilgisine göre tüm telemetri öğelerininX-Forwarded-For
bağlamının özelliğini güncelleştirir.DeviceTelemetryInitializer
tüm telemetri öğeleri için bağlamınDevice
aşağıdaki özelliklerini güncelleştirir.Type
olarak ayarlanırPC
.Id
, web uygulamasının çalıştığı bilgisayarın etki alanı adına ayarlanır.OemName
, WMI kullanılarak alandan ayıklanan değereWin32_ComputerSystem.Manufacturer
ayarlanır.Model
, WMI kullanılarak alandan ayıklanan değereWin32_ComputerSystem.Model
ayarlanır.NetworkType
özelliğinden ayıklanan değereNetworkInterface
ayarlanır.Language
özelliğininCurrentCulture
adına ayarlanır.
DomainNameRoleInstanceTelemetryInitializer
RoleInstance
, web uygulamasınınDevice
çalıştığı bilgisayarın etki alanı adıyla tüm telemetri öğeleri için bağlamın özelliğini güncelleştirir.OperationNameTelemetryInitializer
Name
RequestTelemetry
http yöntemini temel alarak tüm telemetri öğelerininOperation
bağlamının veName
özelliğini ve isteği işlemek için çağrılan ASP.NET MVC denetleyicisinin ve eyleminin adlarını güncelleştirir.OperationIdTelemetryInitializer
veyaOperationCorrelationTelemetryInitializer
otomatik olarak oluşturulanRequestTelemetry.Id
ile bir isteği işlerken izlenen tüm telemetri öğelerinin bağlam özelliğini güncelleştirirOperation.Id
.SessionTelemetryInitializer
Id
, kullanıcının tarayıcısındaSession
çalışan JavaScript izleme kodu tarafındanApplicationInsights
oluşturulan tanımlama bilgisindenai_session
ayıklanan değerle tüm telemetri öğeleri için bağlamın özelliğini güncelleştirir.SyntheticTelemetryInitializer
veyaSyntheticUserAgentTelemetryInitializer
kullanılabilirlik testi veyaOperation
arama motoru botu gibi yapay bir kaynaktan gelen bir isteği işlerken izlenen tüm telemetri öğelerinin ,Session
ve bağlam özelliklerini güncelleştirirUser
. Varsayılan olarak ölçüm gezgini yapay telemetri görüntülemez.<Filters>
İsteklerin özelliklerini tanımlayan küme.UserTelemetryInitializer
, kullanıcının tarayıcısındaId
çalışan Application Insights JavaScript izleme kodu tarafından oluşturulan tanımlama bilgisindenai_user
ayıklanan değerlerle tüm telemetri öğeleri için bağlamın veAcquisitionDate
özellikleriniUser
güncelleştirir.WebTestTelemetryInitializer
kullanılabilirlik testlerinden gelen HTTP istekleri için kullanıcı kimliğini, oturum kimliğini ve yapay kaynak özelliklerini ayarlar.<Filters>
İsteklerin özelliklerini tanımlayan küme.
Azure Service Fabric'te çalışan .NET uygulamaları için NuGet paketini ekleyebilirsiniz Microsoft.ApplicationInsights.ServiceFabric
. Bu paket, telemetri öğelerine Service Fabric özellikleri ekleyen bir FabricTelemetryInitializer
özellik içerir. Daha fazla bilgi için bu NuGet paketi tarafından eklenen özellikler hakkında GitHub sayfasına bakın.
Telemetri işlemcileri (ASP.NET)
Telemetri işlemcileri, SDK'dan portala gönderilmeden önce her telemetri öğesini filtreleyebilir ve değiştirebilir.
Kendi telemetri işlemcilerinizi yazabilirsiniz.
Uyarlamalı örnekleme telemetri işlemcisi (2.0.0-beta3'ten)
Bu işlev varsayılan olarak etkindir. Uygulamanız önemli miktarda telemetri gönderirse, bu işlemci bazı telemetri verilerini kaldırır.
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
</Add>
</TelemetryProcessors>
parametresi, algoritmanın gerçekleştirmeye çalıştığı hedefi sağlar. SDK'nın her örneği bağımsız olarak çalışır. Bu nedenle, sunucunuz birkaç makineden oluşan bir kümeyse, gerçek telemetri hacmi buna göre çarpılır.
Örnekleme hakkında daha fazla bilgi edinin.
Sabit hızlı örnekleme telemetri işlemcisi (2.0.0-beta1'den)
Standart bir örnekleme telemetri işlemcisi de vardır (2.0.1'den):
<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
Bkz. bağlantı dizesi kod örnekleri.
InstrumentationKey
Not
31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizelerine geçiş.
Bu ayar, verilerinizin görüntülendiği Application Insights kaynağını belirler. Genellikle, uygulamalarınızın her biri için ayrı bir anahtarla ayrı bir kaynak oluşturursunuz.
Anahtarı dinamik olarak ayarlamak istiyorsanız, örneğin, uygulamanızdan farklı kaynaklara sonuç göndermek istiyorsanız, anahtarı yapılandırma dosyasından atlayabilir ve bunun yerine kodda ayarlayabilirsiniz.
Standart telemetri modülleri de dahil olmak üzere tüm örneklerinin TelemetryClient
anahtarını ayarlamak için bu adımı bir ASP.NET hizmetinde global.aspx.cs gibi bir başlatma yönteminde gerçekleştirin:
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);
Belirli bir olay kümesini farklı bir kaynağa göndermek istiyorsanız, belirli bir telemetri istemcisinin anahtarını ayarlayabilirsiniz:
var tc = new TelemetryClient();
tc.Context.InstrumentationKey = "----- my key ----";
tc.TrackEvent("myEvent");
// ...
Yeni bir anahtar almak için Application Insights portalında yeni bir kaynak oluşturun.
ApplicationId Sağlayıcısı
Sağlayıcı v2.6.0'dan itibaren kullanılabilir.
Bu sağlayıcının amacı, izleme anahtarına dayalı bir uygulama kimliği aramaktır. Uygulama kimliği ve DependencyTelemetry
içinde RequestTelemetry
bulunur ve portalda bağıntıyı belirlemek için kullanılır.
Bu işlev, kodda veya yapılandırma dosyasında ayarlanarak TelemetryConfiguration.ApplicationIdProvider
kullanılabilir.
Arabirim: IApplicationIdProvider
public interface IApplicationIdProvider
{
bool TryGetApplicationId(string instrumentationKey, out string applicationId);
}
Microsoft.ApplicationInsights SDK'sında iki uygulama sağlıyoruz: ApplicationInsightsApplicationIdProvider
ve DictionaryApplicationIdProvider
.
ApplicationInsightsApplicationIdProvider
Bu sarmalayıcı Profil API'mize yöneliktir. İstekleri kısıtlar ve sonuçları önbelleğe alır.
Microsoft.ApplicationInsights.DependencyCollector veya Microsoft.ApplicationInsights.Web yüklediğinizde bu sağlayıcı yapılandırma dosyanıza eklenir.
Bu sınıfın isteğe bağlı bir özelliği ProfileQueryEndpoint
vardır. Varsayılan olarak olarak ayarlanır https://dc.services.visualstudio.com/api/profiles/{0}/appId
. Bu yapılandırma için bir ara sunucu yapılandırmanız gerekiyorsa, temel adresi ara sunucuya eklemenizi ve eklemeniz "/api/profiles/{0}/appId"
önerilir. bir {0}
, çalışma zamanında istek başına izleme anahtarıyla değiştirilir.
ApplicationInsights.config aracılığıyla örnek yapılandırma
<ApplicationInsights>
...
<ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights">
<ProfileQueryEndpoint>https://dc.services.visualstudio.com/api/profiles/{0}/appId</ProfileQueryEndpoint>
</ApplicationIdProvider>
...
</ApplicationInsights>
Kod aracılığıyla örnek yapılandırma
TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();
DictionaryApplicationIdProvider
Bu statik sağlayıcı, yapılandırılmış izleme anahtarı/uygulama kimliği çiftlerinize dayanır.
Bu sınıf, izleme anahtarı/uygulama kimliği çiftlerinin bir Dictionary<string,string>
özelliğine sahiptirDefined
.
Bu sınıf, yapılandırmanızda mevcut olmayan bir izleme anahtarı istendiğinde kullanmak üzere başka bir sağlayıcı yapılandırmak için kullanılabilen isteğe bağlı özelliğine Next
sahiptir.
ApplicationInsights.config aracılığıyla örnek yapılandırma
<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>
Kod aracılığıyla örnek yapılandırma
TelemetryConfiguration.Active.ApplicationIdProvider = new DictionaryApplicationIdProvider{
Defined = new Dictionary<string, string>
{
{"InstrumentationKey_1", "ApplicationId_1"},
{"InstrumentationKey_2", "ApplicationId_2"}
}
};
ASP.NET uygulamalar için anlık görüntü koleksiyonunu yapılandırma
ASP.NET uygulamalar için anlık görüntü koleksiyonu yapılandırma.