Azure İzleyici Application Insights için resmi SSS. Azure İzleyici ile Application Insights kullanma hakkındaki soruların yanıtlarını bulun.
Genel Bakış
Bir uygulamayı nasıl enstrümanlı hale getiririm?
Application Insights'ı etkinleştirmek için uygulamaları izleme hakkında ayrıntılı bilgi için bkz. veri toplamayla ilgili temel bilgiler.
Application Insights’ı nasıl kullanabilirim?
Bir uygulamayı enstrüman ederek Application Insights'ı etkinleştirdikten sonra önce Canlı ölçümleri ve Uygulama haritasını kontrol etmenizi öneririz.
Application Insights hangi telemetri verilerini toplar?
Sunucu web uygulamalarından:
- HTTP istekleri.
- Bağımlılıklar. SQL veritabanlarına yapılan çağrılar, dış hizmetlere HTTP çağrıları, Azure Cosmos DB, Azure Tablo Depolama, Azure Blob Depolama ve Azure Kuyruk Depolama.
- Özel durumlar ve yığın izleri.
- Performans sayaçları: Aşağıdakiler kullanılırken performans sayaçları kullanılabilir:
- Kodladığınız özel olaylar ve ölçümler .
- Uygun toplayıcıyı yapılandırdığınızda izleme günlüklerini kaydedin.
Uygulamanızda yakalanmayan özel durumlar, hakkında bilgi içerecek şekilde,
- Yığın izleme
- Hataya eşlik eden özel durum ayrıntıları ve ileti
- Hatanın satır ve sütun numarası
- Hatanın oluştuğu URL
- Uygulamanızın XML Http Request (XHR) ve Veri Getirme (fetch koleksiyonu varsayılan olarak kapalıdır) isteklerinden gelen ağ bağımlılığı olan talepler, aşağıdaki konularda bilgi içerir:
- Bağımlılık kaynağının url'si
- Bağımlılığı istemek için kullanılan Command & Yöntemi
- İsteğin süresi
- İsteğin sonuç kodu ve başarı durumu
- İstekte bulunan kullanıcının kimliği (varsa)
- İsteğin yapıldığı bağıntı bağlamı (varsa)
Kullanıcı bilgileri (örneğin, Konum, ağ, IP)
Cihaz bilgileri (örneğin, Tarayıcı, işletim sistemi, sürüm, dil, model)
Oturum bilgileri
Uyarı
Tek sayfalı uygulamalar (SPA' lar) gibi bazı uygulamalar için süre her zaman kaydedilmez ve bu gibi durumlarda varsayılan değer 0 olur.
Daha fazla bilgi için, bkz. Application Insights'da veri toplama, saklama ve depolama.
Diğer kaynaklardan, eğer bunları yapılandırırsanız:
Geleneksel günlük çerçeveleriyle toplanan telemetri nereye gider?
Serilog gibi günlükleme çerçeveleri kullanılırken, günlük iletileri Application Insights tarafından İz telemetrisi olarak alınır ve Log Analytics'te traces tablosunda (veya AppTraces tablosunda) depolanır.
requests, dependencies ve exceptions gibi tablolar ilgili telemetri türleri için ayrıldığından, bu bir tasarım seçimidir.
Ayrıntılar için bkz. Application Insights telemetri veri modeli.
Kaç Application Insights kaynağı dağıtmalıyım?
Uygulamanızı veya bileşenlerinizi ortamlar arasında kapsamak için gereken Application Insights kaynaklarının sayısını anlamak için Bkz. Application Insights dağıtım planlama kılavuzu.
PowerShell ile Application Insights kaynaklarını nasıl yönetebilirim?
Azure Kaynak İzleyicisi'ni kullanarak PowerShell betikleri yazabilirsiniz için:
- Application Insights kaynaklarını oluşturun ve güncelleştirin.
- Fiyatlandırma planını ayarlayın.
- bağlantı dizesi alın.
- Ölçüm uyarısı ekleyin.
- Kullanılabilirlik testi ekleyin.
Ölçüm gezgini raporu ayarlayamazsınız veya sürekli dışarı aktarmayı ayarlayamazsınız.
Application Insights telemetri verilerini nasıl sorgulayabilirim?
Log Analytics sorgularını çalıştırmak için REST API'yi kullanın.
Application Insights portalına telemetri gönderebilir miyim?
Azure İzleyici OpenTelemetry Distro'sunu öneririz.
Veri giriş şeması ve uç nokta protokolü herkese açıktır.
Telemetri verilerinin toplanması ne kadar sürer?
Application Insights verilerinin çoğu 5 dakikadan kısa bir gecikme süresine sahiptir. Bazı veriler daha uzun sürebilir ve bu daha büyük günlük dosyaları için tipiktir. Bkz. Application Insights hizmet düzeyi sözleşmesi.
Application Insights veri toplama, saklama, depolama ve gizliliği nasıl işler?
Context
Application Insights, uygulamanızdan telemetri toplar ve bunu bir Log Analytics çalışma alanında depolar. Yalnızca Azure'da değil, her yerde barındırılan uygulamalar için çalışır.
Toplananlar ve nereden gelenler
Telemetri şu kaynaklardan gelir: (1) gönderdiğiniz özel telemetriler dahil olmak üzere uygulamanıza eklediğiniz SDK, (2) isteğe bağlı sunucu aracıları ve (3) Microsoft tarafından çalıştırılacak kullanılabilirlik testleri. Tipik veriler istekler, bağımlılıklar, özel durumlar ve kilitlenmeler, performans sayaçları, istemci ve sunucu bağlamı, izlemeler ve gönderdiğiniz özel olayları veya ölçümleri içerir. Nelerin gönderildiğini doğrulamak için uygulamanızı hata ayıklama modunda çalıştırın ve IDE Çıktısı veya Tanılama pencerelerinizi denetleyin. Web sayfaları için tarayıcı geliştirici araçlarınızı açın ve Ağ sekmesini inceleyin. Bir telemetri işlemcisi uygulayarak, telemetri verilerini gönderilmeden önce filtreleyebilir veya zenginleştirebilirsiniz.
Saklama ve depolama
Ham veri saklama 30, 60, 90, 120, 180, 270, 365, 550 veya 730 güne ayarlanabilir. 90 günden daha fazla bekletme ek ücrete neden olabilir. Toplanan ölçümler 90 gün boyunca 1 dakikalık ayrıntı düzeyinde tutulur. Hata ayıklama anlık görüntüleri 15 gün boyunca saklanır. Veriler, kaynağı oluştururken seçtiğiniz bölgede depolanır. Veri alımı sonrasında telemetri değiştirilemez. Telemetriyi düzenleyemezsiniz. Gerektiğinde verileri silmek için temizleme kullanılabilir.
Erişim, güvenlik ve şifreleme
Veriler siz ve erişimi olan ekip arkadaşlarınız tarafından görülebilir ve dışarı aktarılabilir. Microsoft, verilerinizi yalnızca hizmete kısıtlı personel erişimi sağlamak için kullanır ve hizmeti geliştirmek için toplu istatistikleri kullanabilir. Telemetri HTTPS üzerinden gönderilir ve veriler beklemede ve veri merkezleri arasında hareket ettikçe şifrelenir.
Gizlilik ve sorumlu kullanım
Varsayılan SDK modülleri performansa, kullanıma ve tanılamaya odaklanır ve genellikle hassas kişisel verileri içermez. Hassas verileri URL'lere yerleştirmeyin. Kişisel verileri içermemesi için özel telemetriyi gözden geçirin. İstemci IP'si coğrafi konum için kullanılır, ardından depolanan IP alanı varsayılan olarak sıfırlanır. Maskeleme gerekiyorsa bir telemetri başlatıcısı ekleyin. Uygulamanızın bir vazgeçme seçeneğine ihtiyacı varsa, kod içerisinde koleksiyonu devre dışı bırakın. Ayrıca, kişisel cihazlarda cihaz adı gibi zararsız görünen alanları da gözden geçirin.
Yapılandırmada veya kod aracılığıyla bazı koleksiyonları denetleyebilir veya devre dışı bırakabilirsiniz. Daha fazla bilgi için bkz. coğrafi konum ve IP adresi işleme
TLS
Aktarımdaki veriler için modern TLS kullanın. Eski protokol sürümlerini sabit kodlamayın. Platformun kullanılabilir hale geldikçe daha yeni sürümlerle anlaşmasına izin verin. Daha fazla bilgi için bkz . Azure İzleyici dağıtımınızın güvenliğini sağlama.
Yerel arabelleğe alma ve kesintiler
Azure bağlantısı kesilirse veya kısıtlanırsa SDK'lar telemetri verilerini yerel olarak arabelleğe alır ve yeniden dener. Eski öğeler, örneğin günlükler için yaklaşık 48 saat ve ölçümler için 30 dakika sonra çıkarılır. Yerel geçici depolama şifrelenmez, bu nedenle yapılandırdığınız tüm depolama dizinlerinin güvenliğini sağlayın. Tarayıcılarda, göndermeleri arabelleğe almak için sessionStorage kullanılır.
Dil başına yerel depolama: hızlı başvuru
.NET (ServerTelemetryChannel): varsayılan olarak
%LOCALAPPDATA%\Microsoft\ApplicationInsightsveya%TMP%olur. Yapılandırma veya kodda kalıcı bir klasör ayarlayabilirsiniz.Yapılandırma (ApplicationInsights.config):
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"> <StorageFolder>D:\NewTestFolder</StorageFolder> </TelemetryChannel>C# kodu:
var channel = new Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel(); channel.StorageFolder = @"D:\NewTestFolder"; channel.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active); Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.TelemetryChannel = channel;.NET (ASP.NET Core): Yukarıdakiyle aynı varsayılan değerler. Linux ve macOS'ta SDK bir depolama klasörünü otomatik olarak oluşturabilir. Tercih sırası:
${TMPDIR}, sonra/var/tmp, ve ./tmpStartup.csiçinde bir klasör ayarlayabilirsiniz.ASP.NET Çekirdek Başlatma:
using Microsoft.ApplicationInsights.Channel; using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel; // inside ConfigureServices services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel { StorageFolder = "/tmp/myfolder" });Java: İşletim sistemi geçici klasörünü kullanır, örneğin
C:\Users\username\AppData\Local\TempWindows'da. Bu yol standart yapılandırma dosyası aracılığıyla yapılandırılamaz.Node.js: Varsayılan olarak
%TEMP%/appInsights-node{CONNECTION STRING}değeridir. Çalışma zamanında geçici dizin için kullanılan dosya ön ekini değiştirebilirsiniz.Düğüm örneği:
const appInsights = require('applicationinsights'); appInsights.Sender.TEMPDIR_PREFIX = 'my-app-ai'; appInsights.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING).start();JavaScript (tarayıcı):
sessionStorageveAI_buffertuşlarınıAI_sent_bufferkullanır. sessionStorage belleğinin arabelleğe alınmasını devre dışı bırakmak için:import { ApplicationInsights } from '@microsoft/applicationinsights-web'; const appInsights = new ApplicationInsights({ config: { connectionString: '<YOUR-CONNECTION-STRING>', enableSessionStorageBuffer: false } }); appInsights.loadAppInsights();Python (OpenCensus): Varsayılan olarak olur
%USERNAME%/.opencensus/.azure/. Özel bir yol ayarlayabilirsiniz:from opencensus.ext.azure.log_exporter import AzureLogHandler handler = AzureLogHandler(connection_string='<YOUR-CONNECTION-STRING>', storage_path='/var/tmp/ai-cache')
Arşivlenmiş Bilgiler
Arşivlenmiş bilgiler için bkz: Application Insights'ta Veri Toplama, Saklama ve Depolama.
Application Insights fiyatlandırma modeli nedir?
Application Insights, günlük verilerinin alındığı Log Analytics çalışma alanı aracılığıyla faturalandırılır. Varsayılan Kullandıkça öde Log Analytics fiyatlandırma katmanı, faturalama hesabı başına aylık 5 GB ücretsiz veri izni içerir. Azure İzleyici günlükleri fiyatlandırma seçenekleri hakkında daha fazla bilgi edinin.
Azure web uygulaması ile Application Insights arasında veri aktarımı ücretleri var mı?
- Azure web uygulamanız Application Insights koleksiyon uç noktasının bulunduğu bir veri merkezinde barındırılıyorsa ücret alınmaz.
- Konak veri merkezinizde bir koleksiyon uç noktası yoksa, uygulamanızın telemetrisi Azure üzerinde giden ücretlere tabi olur.
Bu yanıt, Application Insights kaynağınızın barındırıldığı yere değil uç noktalarımızın dağıtımına bağlıdır.
Application Insights kaynağım farklı bir bölgedeki bir Azure kaynağını (telemetri üreticisi) izliyorsa ağ maliyetleri doğurabilir miyim?
Evet, telemetrinin geldiği bölgeye ve nereye gittiğine bağlı olarak değişen daha fazla ağ maliyetiyle karşılaşabilirsiniz. Ayrıntılar için Azure bant genişliği fiyatlandırmasına bakın.
Application Insights'ta beklenmeyen ücretler veya yüksek maliyetler görüyorsanız bu kılavuz yardımcı olabilir. Yüksek telemetri hacmi, veri alımı ani artışları ve yanlış yapılandırılmış örnekleme gibi yaygın nedenleri kapsar. Özellikle maliyet artışları, telemetri hacmi, örneklemenin çalışmaması, veri üst sınırı, yüksek veri alımı veya beklenmeyen faturalama ile ilgili sorunları gideriyorsanız kullanışlıdır. Başlamak için bkz. Application Insights'ta yüksek veri alımı sorunlarını giderme.
Hangi TLS sürümleri desteklenir?
Application Insights, Aktarım Katmanı Güvenliği (TLS) 1.2 ve 1.3'i kullanır.
Önemli
1 Mart 2025'te Azure, TLS'nin eski sürümlerini tüm hizmetlerde kullanımdan kaldırmaya devam edecektir. Application Insights artık TLS 1.0, TLS 1.1 ve listelenen eski TLS 1.2/1.3 şifreleme paketlerini ve üç nokta eğrilerini desteklememektedir.
Eski TLS sorunuyla ilgili genel sorular için bkz. TLS sorunlarını çözme ve Azure Resource Manager TLS Desteği.
Application Insights hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'a Giriş.
Özel olaylar ve ölçümler için Application Insights API
Telemetri verileri neden eksik?
Uygulama kapanmadan önce boşaltılmadığı takdirde, her iki TelemetryChannels da arabelleğe alınmış telemetriyi kaybeder.
Veri kaybını önlemek için, bir uygulama kapatılırken TelemetryClient'ı boşaltın.
Daha fazla bilgi için Veri temizleme bölümüne bakın.
Track_() çağrıları hangi özel durumlar oluşturur?
Yok. Bunları try-catch yan tümcelerinde sarmalamanız gerekmez. SDK sorunlarla karşılaşırsa, mesajları hata ayıklama konsolu çıkışında ve mesajlar iletilirse Tanılama Arama'da kaydeder.
Portaldan veri almak için bir REST API var mı?
Evet, veri erişim API'si. Verileri ayıklamanın diğer yolları arasında çalışma alanı tabanlı kaynakta Power BI yer alır.
Özel olaylara ve ölçüm API'lerine yönelik çağrılarım neden yoksayılıyor?
Application Insights SDK'si otomatik enstrümantasyon ile uyumlu değildir. Otomatik araçlama etkinleştirilirse, Track() ve diğer özel olaylar ve ölçüm API'leri çağrıları yoksayılır.
Azure portalında, App Service sayfasının Application Insights sekmesinde otomatik enstrümantasyonu kapatın veya ApplicationInsightsAgent_EXTENSION_VERSION öğesini disabled olarak ayarlayın.
Arama ve Ölçüm grafiklerindeki sayılar neden eşit değil?
Örnekleme , uygulamanızdan portala gönderilen telemetri öğelerinin (istekler ve özel olaylar gibi) sayısını azaltır. Arama'da, alınan öğe sayısını görürsünüz. Olay sayısını görüntüleyen ölçüm grafiklerinde, gerçekleşen özgün olayların sayısını görürsünüz.
İletilen her öğe, öğenin temsil ettiği özgün olay sayısını gösteren bir itemCount özellik taşır. Örnekleme işlemini gözlemlemek için bu sorguyu Log Analytics'te çalıştırabilirsiniz:
requests | summarize original_events = sum(itemCount), transmitted_events = count()
Bir olayda nasıl uyarı ayarlayabilirim?
Azure uyarıları yalnızca ölçümler içindir. Olayınız her gerçekleştiğinde değer eşiğini aşan özel bir ölçüm oluşturun. Ardından ölçümde bir uyarı ayarlayın. Ölçüm iki yönde de eşiği her geçtiğinde bir bildirim alırsınız. İlk değer yüksek veya düşük olsa da ilk geçişe kadar bildirim almazsınız. Her zaman birkaç dakikalık bir gecikme süresi vardır.
Özel olaylar ve ölçümler için Application Insights API'si hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Özel olaylar ve ölçümler için Application Insights API'si.
Şirket içi sunucular için Application Insights Aracısı dağıtma
Application Insights Aracısı ara sunucu yüklemelerini destekliyor mu?
Evet. Application Insights Aracısını indirmenin birden çok yolu vardır:
- Bilgisayarınızda internet erişimi varsa,
-Proxyparametrelerini kullanarak PowerShell Galerisine katılabilirsiniz. - Ayrıca modülü el ile indirebilir ve bilgisayarınıza yükleyebilir veya doğrudan kullanabilirsiniz.
Bu seçeneklerin her biri ayrıntılı yönergelerde açıklanmıştır.
Application Insights Aracısı ASP.NET Core uygulamalarını destekliyor mu?
Evet. Application Insights Agent 2.0.0 ve sonraki sürümlerinde IIS'de barındırılan ASP.NET Core uygulamaları desteklenir.
Etkinleştirmenin başarılı olduğunu nasıl doğrularım?
Etkinleştirmenin başarılı olduğunu doğrulamak için Get-ApplicationInsightsMonitoringStatus cmdlet'ini kullanabilirsiniz.
Uygulamanızın telemetri gönderip göndermediğini hızla belirlemek için Canlı Ölçümler'i kullanın.
Şu anda telemetri gönderen tüm bulut rollerini listelemek için Log Analytics'i de kullanabilirsiniz:
union * | summarize count() by cloud_RoleName, cloud_RoleInstance
Ara sunucu geçişi Nasıl yaparım??
Ara sunucu geçişine ulaşmak için makine düzeyinde ara sunucu veya uygulama düzeyi ara sunucu yapılandırın. Bkz . DefaultProxy.
Örnek Web.config:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://xx.xx.xx.xx:yyyy" bypassonlocal="true"/>
</defaultProxy>
</system.net>
Şirket içi sunucular için Application Insights Aracısını dağıtma hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Şirket içi sunucular için Application Insights Aracısı dağıtma.
TLS desteği
TLS'nin kullanımdan kaldırılmasının sizi etkileyip etkilemediğini belirleme
Application Insights ve Azure İzleyici, HTTPS bağlantıları için kullanılan TLS sürümünü denetlemez. TLS sürümü, uygulamanızın çalıştığı işletim sistemine ve çalışma zamanı ortamına bağlıdır.
Kullanımdaki TLS sürümünü onaylamak için:
- İşletim sisteminiz ve çalışma zamanınız veya çerçeveniz için belgeleri gözden geçirin.
- Daha fazla yardıma ihtiyacınız varsa uygun destek ekibine başvurun. Application Insights ile destek isteği açmayın.
TLS 1.2+ için örnek dil ve çalışma zamanı desteği
Aşağıdaki sürümler TLS 1.2 veya üzeri için tümleşik destek içerir:
- .NET / .NET Core: .NET Framework 4.6.2 veya üzeri ve .NET Core'un tüm sürümleri
- Java: Java 8 güncelleştirme 161 (8u161) veya üzeri
- Python: OpenSSL 1.0.1 veya üzeri ile oluşturulmuş Python dağıtımları
- Node.js: Node.js sürüm 10 veya üzeri
TLS 1.2+ için örnek işletim sistemi desteği
Aşağıdaki işletim sistemleri TLS 1.2 veya üzeri için tümleşik destek içerir:
- Windows: Windows 8, Windows Server 2012 ve üzeri
- Linux: OpenSSL 1.0.1 veya üzerini kullanan çoğu modern Linux dağıtımı
Kaynaklarımın etkilenmediğinden nasıl emin olabilirim?
Hizmet kesintilerini önlemek için kaynağınızın etkileşimde bulunduğu her uzak uç noktanın (bağımlı istekler dahil) daha önce bahsedilen aynı Protokol Sürümü, Şifreleme Paketi ve Eliptik Eğri'nin en az bir bileşimini desteklemesi gerekir. Uzak uç nokta gerekli TLS yapılandırmasını desteklemiyorsa, kullanımdan kaldırma sonrası TLS yapılandırmasının bir bileşimi için destekle güncelleştirilmesi gerekir.
1 Mayıs 2025'in ardından, etkilenen kaynakların davranışı nedir?
Etkilenen Application Insights kaynakları veri alımını durdurur ve gerekli uygulama bileşenlerine erişemez. Sonuç olarak, bazı özellikler çalışmayı durdurur.
Kullanımdan kaldırma hangi bileşenleri etkiler?
Bu belgede ayrıntılı olarak belirtilen Aktarım Katmanı Güvenliği 'nin (TLS) kullanımdan kaldırılması yalnızca 1 Mayıs 2025'teki davranışı etkilemelidir. CRUD işlemleri hakkında daha fazla bilgi için bkz. Azure Resource Manager TLS Desteği. Bu kaynak TLS desteği ve kullanımdan kaldırma zaman çizelgeleri hakkında daha fazla ayrıntı sağlar.
Aktarım Katmanı Güvenliği (TLS) desteğini nereden alabilirim?
Eski TLS sorunuyla ilgili genel sorular için bkz . TLS sorunlarını çözme.
Application Insights'ta TLS desteği hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. TLS desteği.
ASP.NET
SDK'yi nasıl kaldırabilirim?
Application Insights'ı kaldırmak için Uygulamanızdaki API'den NuGet paketlerini ve başvurularını kaldırmanız gerekir. Visual Studio'daki NuGet Paket Yöneticisi kullanarak NuGet paketlerini kaldırabilirsiniz.
- İzleme koleksiyonu etkinleştirilirse, nuGet Paket Yöneticisi kullanarak önce Microsoft.ApplicationInsights.TraceListener paketini kaldırın, ancak bağımlılıkları kaldırmayın.
- NuGet Paket Yöneticisi ve NuGet Paket Yöneticisi Seçenekleri denetimindeki Kaldırma seçeneklerini kullanarak Microsoft.ApplicationInsights.Web paketini kaldırın ve bağımlılıklarını kaldırın.
- Application Insights'ı tamamen kaldırmak için, eklenen kodu veya dosyaları ve projenize eklediğiniz API çağrılarını denetleyin ve el ile silin. Daha fazla bilgi için bkz . Application Insights SDK'sını eklediğinizde otomatik olarak ne oluşturulur?.
Application Insights SDK'sını eklediğinizde otomatik olarak ne oluşturulur?
Application Insights'ı projenize eklediğinizde otomatik olarak dosyalar oluşturulur ve bazı dosyalarınıza kod eklenir. NuGet Paketlerini yalnızca kaldırmak, her zaman dosyaları ve kodu tamamen ortadan kaldırmaz. Application Insights'ı tamamen kaldırmak için, eklenen kodu veya dosyaları ve projenize eklediğiniz API çağrılarını el ile denetlemeniz ve silmeniz gerekir.
Visual Studio ASP.NET projesine Application Insights Telemetrisi eklediğinizde, aşağıdaki dosyaları ekler:
- ApplicationInsights.config
- AiHandleErrorAttribute.cs
Aşağıdaki kod parçaları otomatik olarak eklenir:
[Projenizin adı].csproj
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>Packages.config
<packages> ... <package id="Microsoft.ApplicationInsights" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.Web" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.AspNet.TelemetryCorrelation" version="1.0.7" targetFramework="net472" /> <package id="System.Buffers" version="4.4.0" targetFramework="net472" /> <package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net472" /> <package id="System.Memory" version="4.5.3" targetFramework="net472" /> <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net472" /> <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" /> ... </packages>Layout.cshtml
Projenizde layout.cshtml dosyası varsa aşağıdaki kod eklenir.
<head> ... <script type = 'text/javascript' > var appInsights=window.appInsights||function(config) { function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} } var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t }({ connectionString:'<YOUR-CONNECTION-STRING>' }); window.appInsights=appInsights; appInsights.trackPageView(); </script> ... </head>ConnectedService.json
{ "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", "Version": "16.0.0.0", "GettingStartedDocument": { "Uri": "https://go.microsoft.com/fwlink/?LinkID=613413" } }FilterConfig.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ErrorHandler.AiHandleErrorAttribute());// This line was added }
Telemetri bağıntısını nasıl devre dışı bırakabilirim?
Yapılandırmada telemetri bağıntısını devre dışı bırakmak için bkz <ExcludeComponentCorrelationHttpHeadersOnDomains>. Konsol uygulamaları için Application Insights.
Application Insights'ı ASP.NET ile kullanma hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. ASP.NET web siteniz için Application Insights'ı yapılandırma.
ASP.NET Core uygulamaları
Application Insights ASP.NET Core 3.1'i destekliyor mu?
ASP.NET Core 3.1 artık Microsoft tarafından desteklenmiyor.
ASP.NET Core sürüm 2.8.0 ve Visual Studio 2019 veya üzeri için Application Insights SDK'sı, ASP.NET Core 3.1 uygulamalarıyla kullanılabilir.
Otomatik olarak toplanmayan telemetri verilerini nasıl izleyebilirim?
Oluşturucu enjeksiyonu kullanarak TelemetryClient örneğini alın ve üzerinde gerekli TrackXXX() yöntemini çağırın. ASP.NET Core uygulamasında yeni TelemetryClient veya TelemetryConfiguration örnek oluşturmanızı önermiyoruz.
TelemetryClient tekil bir örneği, DependencyInjection'yi telemetri kalanıyla paylaşan TelemetryConfiguration kapsayıcısında zaten kayıtlıdır. Yalnızca telemetrinin geri kalanından ayrı bir yapılandırma gerekiyorsa yeni TelemetryClient bir örnek oluşturun.
Aşağıdaki örnek, bir denetleyiciden daha fazla telemetriyi nasıl izleyeceğinizi göstermektedir.
using Microsoft.ApplicationInsights;
public class HomeController : Controller
{
private TelemetryClient telemetry;
// Use constructor injection to get a TelemetryClient instance.
public HomeController(TelemetryClient telemetry)
{
this.telemetry = telemetry;
}
public IActionResult Index()
{
// Call the required TrackXXX method.
this.telemetry.TrackEvent("HomePageRequested");
return View();
}
}
Application Insights'ta özel veri raporlama hakkında daha fazla bilgi için bkz . Application Insights özel ölçümler API başvurusu. Benzer bir yaklaşım, GetMetric API'sini kullanarak Application Insights'a özel ölçümler göndermek için de kullanılabilir.
Telemetrimde İstek ve Yanıt gövdesini nasıl kaydedebilirim?
ASP.NET Core, aracılığıyla HTTP İsteği/Yanıt bilgilerini (gövde dahil) günlüğe kaydetmeye yönelik yerleşik desteğeILogger. Bu fırsattan yararlanmanız önerilir. Bu, telemetride kişisel olarak tanımlanabilir bilgileri (PII) ortaya çıkarabilir ve maliyetlerin (performans maliyetleri ve Application Insights faturalaması) önemli ölçüde artmasına neden olabilir, bu nedenle bunu kullanmadan önce riskleri dikkatlice değerlendirin.
ILogger günlükleri koleksiyonunu özelleştirmek Nasıl yaparım??
Application Insights için varsayılan ayar, yalnızca Uyarı ve daha ciddi günlükleri yakalamaktır.
Application Insights sağlayıcısının günlük yapılandırmasını aşağıdaki gibi değiştirerek Bilgileri ve daha az ciddi günlükleri yakalayın.
{
"Logging": {
"LogLevel": {
"Default": "Information"
},
"ApplicationInsights": {
"LogLevel": {
"Default": "Information"
}
}
},
"ApplicationInsights": {
"ConnectionString": "<YOUR-CONNECTION-STRING>"
}
}
Aşağıdaki örneğin, Application Insights sağlayıcısının Information günlüklerini yakalamasını sağlamak için tasarlanmadığını unutmayın. SDK yalnızca ApplicationInsights günlükleri ve daha ciddi günlükleri Warning yakalama talimatı veren bir varsayılan günlük filtresi eklediğinden bunu yakalamaz. Application Insights için açık bir geçersiz kılma gerekir.
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
Daha fazla bilgi için bkz . ILogger yapılandırması.
Bazı Visual Studio şablonları, Application Insights'ı etkinleştirmek için IWebHostBuilder'da UseApplicationInsights() uzantısı yöntemini kullandı. Bu kullanım hala geçerli mi?
Uzantı yöntemi UseApplicationInsights() hala desteklenmektedir, ancak Application Insights SDK sürüm 2.8.0 ve sonraki sürümlerde kullanım dışı olarak işaretlenmiştir. SDK'nın bir sonraki ana sürümünde kaldırılır. Application Insights telemetrisini etkinleştirmek için kullanın AddApplicationInsightsTelemetry() çünkü bazı yapılandırmaları denetlemek için aşırı yüklemeler sağlar. Ayrıca ASP.NET Core 3.X uygulamalarında services.AddApplicationInsightsTelemetry() Application Insights'ı etkinleştirmenin tek yoludur.
ASP.NET Core uygulamamı Web Apps'e dağıtıyorum. Web Apps'ten Application Insights uzantısını etkinleştirmem gerekir mi?
SDK bu makalede gösterildiği gibi derleme zamanında yüklüyse, App Service portalından Application Insights uzantısını etkinleştirmeniz gerekmez. Uzantı yüklüyse, SDK'nın zaten eklendiğini algıladığında geri döner. Uzantıdan Application Insights'ı etkinleştirirseniz SDK'yı yüklemeniz ve güncelleştirmeniz gerekmez. Ancak bu makaledeki yönergeleri izleyerek Application Insights'ı etkinleştirirseniz daha fazla esnekliğe sahip olursunuz çünkü:
- Application Insights telemetrisi şu durumlarda çalışmaya devam eder:
- Windows, Linux ve Mac dahil olmak üzere tüm işletim sistemleri.
- Bağımsız veya çerçeveye bağımlı da dahil olmak üzere tüm yayımlama modları.
- Tam .NET Framework dahil olmak üzere tüm hedef çerçeveler.
- Web Apps, VM'ler, Linux, kapsayıcılar, AKS ve Azure dışı barındırma dahil olmak üzere tüm barındırma seçenekleri.
- Önizleme sürümleri de dahil olmak üzere tüm .NET Core sürümleri.
- Visual Studio'dan hata ayıklarken telemetriyi yerel olarak görebilirsiniz.
- API'yi kullanarak
TrackXXX()daha fazla özel telemetri izleyebilirsiniz. - Yapılandırma üzerinde tam denetime sahipsiniz.
Azure Monitor Application Insights Aracısı (eski adıyla Durum İzleyicisi v2) gibi araçları kullanarak Application Insights izlemeyi etkinleştirebilir miyim?
Evet. Application Insights Agent 2.0.0-beta1 ve sonraki sürümlerinde IIS'de barındırılan ASP.NET Core uygulamaları desteklenir.
Uygulamamı Linux'ta çalıştırırsam tüm özellikler destekleniyor mu?
Evet. SDK için özellik desteği, aşağıdaki özel durumlar dışında tüm platformlarda aynıdır:
- Performans sayaçları yalnızca Windows'ta desteklendiği için SDK, Linux üzerinde olay sayaçlarını toplar. Ölçümlerin çoğu aynıdır.
Bu SDK Çalışan Hizmetleri için destekleniyor mu?
Hayır. Bunun yerine, çalışan hizmetleri için Çalışan Hizmeti uygulamaları (HTTP olmayan uygulamalar) için Application Insights'ı kullanın.
SDK'yi nasıl kaldırabilirim?
Application Insights'ı kaldırmak için Uygulamanızdaki API'den NuGet paketlerini ve başvurularını kaldırmanız gerekir. Visual Studio'daki NuGet Paket Yöneticisi kullanarak NuGet paketlerini kaldırabilirsiniz.
Uyarı
Bu yönergeler ASP.NET Core SDK'sını kaldırmaya yöneliktir. ASP.NET SDK'sını kaldırmanız gerekiyorsa bkz . ASP.NET SDK'sını nasıl kaldırabilirim?.
- NuGet Paket Yöneticisi kullanarak Microsoft.ApplicationInsights.AspNetCore paketini kaldırın.
- Application Insights'ı tamamen kaldırmak için, eklenen kodu veya dosyaları ve projenize eklediğiniz API çağrılarını denetleyin ve el ile silin. Daha fazla bilgi için bkz. Application Insights SDK'sını eklediğinizde ne oluşturulur?
Application Insights SDK'sını eklediğinizde ne oluşturulur?
Projenize Application Insights eklediğinizde dosyalar oluşturulur ve bazı dosyalarınıza kod eklenir. NuGet Paketlerinin sadece kaldırılması dosyaları ve kodu her zaman silmez. Application Insights'ı tamamen kaldırmak için, eklenen kodu veya dosyaları ve projenize eklediğiniz API çağrılarını el ile denetlemeniz ve silmeniz gerekir.
Visual Studio ASP.NET Core şablon projesine Application Insights Telemetrisi eklediğinizde aşağıdaki kodu ekler:
[Projenizin adı].csproj
<PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4core</ApplicationInsightsResourceId> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.12.0" /> </ItemGroup> <ItemGroup> <WCFMetadata Include="Connected Services" /> </ItemGroup>Appsettings.json
"ApplicationInsights": { "ConnectionString": "<YOUR-CONNECTION-STRING>" }ConnectedService.json
{ "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", "Version": "16.0.0.0", "GettingStartedDocument": { "Uri": "https://go.microsoft.com/fwlink/?LinkID=798432" } }Startup.cs
public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddApplicationInsightsTelemetry(); // This is added }
Telemetri bağıntısını nasıl devre dışı bırakabilirim?
Kodda telemetri bağıntısını devre dışı bırakmak için <ExcludeComponentCorrelationHttpHeadersOnDomains> bölümündeki 'a bakın.
ASP.NET Core uygulamaları için Application Insights'ı kullanma hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için ASP.NET Core için Application Insights bölümüne bakın.
performans sayaçlarını ASP.NET
Özel durum oranı ile Özel Durumlar ölçümleri arasındaki fark nedir?
-
Exception rate: Özel durum oranı bir sistem performans sayacıdır. CLR, atılan tüm işlenen ve işlenmeyen özel durumları sayar ve bir örnekleme aralığındaki toplamı aralığın uzunluğuna böler. Application Insights SDK'sı bu sonucu toplar ve portala gönderir. -
Exceptions: Özel durumlar ölçümü, portalınTrackExceptionaldığı raporları grafiğin örnekleme aralığında sayar. Yalnızca kodunuzda çağrı yazdığınızTrackExceptionişlenen özel durumları içerir. İşlenmeyen tüm özel durumları içermez.
ASP.NET performans sayaçları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'ta .NET sayaçları.
olay sayaçlarını ASP.NET
Canlı Ölçümlerde EventCounters'ı görebilir miyim?
Canlı Ölçümler EventCounters'i göstermez. Telemetri verilerini görmek için Ölçüm Gezgini'ni veya Analiz'i kullanın.
Azure Web App Portalı'ndan Application Insights'ı etkinleştirdikten sonra neden olay sayaçlarını göremiyorum?
ASP.NET Core için Application Insights uzantısı henüz bu özelliği desteklemez.
ASP.NET olay sayaçları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'ta .NET sayaçları.
Azure VM'leri ve sanal makine ölçek kümeleri
ASP.NET Core uygulamaları için istemci tarafı izlemeyi nasıl devre dışı bırakabilirim?
İstemci tarafı izleme, ASP.NET Core uygulamaları için varsayılan olarak etkindir. Devre dışı bırakmak istiyorsanız, sunucuda aşağıdaki bilgilerle bir ortam değişkeni tanımlayın:
-
Ad:
APPINSIGHTS_JAVASCRIPT_ENABLED -
Değer:
false
Azure VM'leri ve sanal makine ölçek kümeleri için Application Insights'ı kullanma hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Azure VM'leri ve sanal makine ölçek kümeleri için Application Insights.
Bağımlılık izleme
Otomatik bağımlılık toplayıcısı bağımlılıklara başarısız çağrıları nasıl bildirir?
Başarısız bağımlılık çağrılarının success alanı False olarak ayarlanmıştır. Modül DependencyTrackingTelemetryModuleExceptionTelemetry raporlamaz. Bağımlılık için tam veri modeli Application Insights telemetri veri modeli bölümünde açıklanmıştır.
Bağımlılık telemetrim için veri alımı gecikmesini nasıl hesaplarım?
Şu kodu kullanın:
dependencies
| extend E2EIngestionLatency = ingestion_time() - timestamp
| extend TimeIngested = ingestion_time()
Bağımlılık çağrısının başlatıldığı zamanı nasıl belirleyebilirim?
Log Analytics sorgu görünümünde, timestamp bağımlılık çağrısı yanıtı alındıktan hemen sonra gerçekleşen TrackDependency() çağrısının başlatıldığı anı temsil eder. Bağımlılık çağrısının başladığı zamanı hesaplamak için, bağımlılık çağrısının kaydedilen timestamp kısmını alıp duration çıkarırsınız.
Application Insights'ta bağımlılık izleme, yanıt gövdelerini günlüğe kaydetmeyi içeriyor mu?
Application Insights'ta bağımlılık izleme, çoğu uygulama için çok fazla telemetri oluşturacağı için yanıt gövdelerinin günlüğe kaydedilmesini içermez.
Application Insights'ta bağımlılık izleme hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Bağımlılık izleme.
Kullanılabilirlik Testleri
Kullanılabilirlik testlerini intranet sunucusunda çalıştırabilir miyim?
Kullanılabilirlik testleri, dünyanın dört bir yanında dağıtılan varlık noktalarında çalışır. İki çözüm vardır:
- Güvenlik duvarı kapısı: Uzun ve değiştirilebilir web testi aracıları listesinden sunucunuza yönelik isteklere izin verin.
-
Özel kod: Sunucunuza intranetinizin içinden düzenli istekler göndermek için kendi kodunuzu yazın. Bu amaçla Visual Studio web testleri çalıştırabilirsiniz. Test eden, API'yi kullanarak sonuçları Application Insights'a
TrackAvailability()gönderebilir.
Kullanılabilirlik testleri için kullanıcı aracısı dizesi nedir?
Kullanıcı aracısı dizesi Mozilla/5.0'dır (uyumlu; MSIE 9.0; Windows NT 6.1; Trident/5.0; AppInsights)
Application Insights kullanılabilirlik testleri hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Kullanılabilirlik testleri.
Kullanılabilirlik testleri için TLS desteği
Kullanımdan kaldırma işlemi web testi davranışımı nasıl etkiler?
Kullanılabilirlik testleri, desteklenen web testi konumlarının her birinde dağıtılmış istemci görevi görür. Bir web testi her yürütülürken kullanılabilirlik testi hizmeti, web testi yapılandırmasında tanımlanan uzak uç noktaya ulaşmayı dener. Şu anda desteklenen tüm TLS yapılandırmasını içeren bir TLS İstemciSi Hello iletisi gönderilir. Uzak uç nokta kullanılabilirlik testi istemcisiyle ortak bir TLS yapılandırmasını paylaşıyorsa TLS el sıkışması başarılı olur. Aksi takdirde, web testi TLS el sıkışma hatasıyla başarısız olur.
Uzak uç noktanın hangi TLS yapılandırmasını desteklediğini doğrulama Nasıl yaparım??
Bir uç noktanın hangi TLS yapılandırmasını desteklediğini test etmek için kullanabileceğiniz çeşitli araçlar vardır. Bunun bir yolu, bu sayfada ayrıntılarıyla belirtilen örneği izlemek olabilir. Uzak uç noktanız Genel İnternet üzerinden kullanılamıyorsa, uç noktanızı çağırma erişimi olan bir makineden uzak uç noktada desteklenen TLS yapılandırmasını doğrulamanız gerekir.
Uyarı
Web sunucunuzda gerekli TLS yapılandırmasını etkinleştirme adımları için, işlem bilinmiyorsa web sunucunuzun üzerinde çalıştığı barındırma platformunun sahibi olan takıma ulaşmak en iyisidir.
1 Mayıs 2025'in ardından etkilenen testlerde web testi davranışı ne olacak?
Bu kullanımdan kaldırmanın etkilediği tüm TLS el sıkışması hatalarının görüneceği tek bir özel durum türü yoktur. Ancak, web testinizin başarısız olmaya başlayacağı en yaygın özel durum olacaktır The request was aborted: Couldn't create SSL/TLS secure channel. Ayrıca, potansiyel olarak etkilenen web testi sonucu için TLS Aktarımının Sorunlarını Giderme Adımında TLS ile ilgili hataları da görebilmeniz gerekir.
Web testim tarafından kullanılmakta olan TLS yapılandırmasını görüntüleyebilir miyim?
Web testi yürütmesi sırasında anlaşmaya varılan TLS yapılandırması görüntülenemiyor. Uzak uç nokta kullanılabilirlik testleriyle ortak TLS yapılandırmasını desteklediği sürece, kullanımdan kaldırma sonrasında hiçbir etki görülmemelidir.
Kullanımdan kaldırma, kullanılabilirlik testi hizmetinde hangi bileşenleri etkiler?
Bu belgede ayrıntılı olarak belirtilen TLS kullanımdan kaldırma, yalnızca 1 Mayıs 2025'in ardından kullanılabilirlik testi web testi yürütme davranışını etkilemelidir. CRUD işlemleri için kullanılabilirlik testi hizmetiyle etkileşim kurma hakkında daha fazla bilgi için bkz . Azure Resource Manager TLS Desteği. Bu kaynak TLS desteği ve kullanımdan kaldırma zaman çizelgeleri hakkında daha fazla ayrıntı sağlar.
TLS desteğini nereden alabilirim?
Eski TLS sorunuyla ilgili genel sorular için bkz . TLS sorunlarını çözme.
Kullanılabilirlik testleri için TLS desteği hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Desteklenen TLS yapılandırmaları.
.NET, Node.js, Python ve Java uygulamaları için Azure App Service'te izleme
Application Insights projemde neleri değiştiriyor?
Ayrıntılar projenin türüne bağlıdır. Aşağıdaki liste bir web uygulaması örneğidir.
Projenize dosya ekler:
- ApplicationInsights.config
- ai.js
NuGet paketlerini yükler:
- Application Insights API'si: Çekirdek API
- Web Uygulamaları için Application Insights API'si: Sunucudan telemetri göndermek için kullanılır
- JavaScript Uygulamaları için Application Insights API'si: İstemciden telemetri göndermek için kullanılır
Paketlerde derlemeleri içerir:
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
Öğeleri şu öğelere ekler:
- Web.config
- packages.config
Kod parçacıklarını Application Insights kaynak kimliğiyle başlatmak için istemci ve sunucu koduna ekler. Örneğin, bir MVC uygulamasında kod, Views/Shared/_Layout.cshtml ana sayfasına eklenir. Yalnızca yeni projeler için, mevcut bir projeye Application Insights'ı el ile eklersiniz.
Application Insights ile Azure Uygulaması Hizmeti ölçümleri arasındaki standart ölçümler arasındaki fark nedir?
Application Insights, uygulamaya yapılan istekler için telemetri toplar. WebApps/WebServer'da hata oluşursa ve istek kullanıcı uygulamasına ulaşmadıysa, Application Insights'ın bu konuda telemetrisi yoktur.
Application Insights tarafından hesaplanan süre serverresponsetime , Web Apps tarafından gözlemlenen sunucu yanıt süresiyle eşleşmelidir. Bunun nedeni Application Insights'ın yalnızca isteğin kullanıcı uygulamasına ulaştığı süreyi saymadır. İstek WebServer'da takılır veya kuyruğa alınırsa, bekleme süresi Web Apps ölçümlerine dahil edilir ancak Application Insights ölçümlerine eklenmez.
.NET, Node.js, Python ve Java uygulamaları için Azure App Service'te izleme hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Azure App Service'te uygulama izlemeyi etkinleştirme.
Otomatik enstrümantasyon
"Oto-araçlandırma" terimi kısa çizgiyle mi girilmelidir?
Microsoft Learn platformunda yayımlanan ürün belgeleri için Microsoft Stil Kılavuzu'nutakip ediyoruz.
Genel olarak, "otomatik" ön ekinin arkasına kısa çizgi eklemeyiz.
Otomatik yetkisiz erişim hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Azure İzleyici Application Insights için otomatik yetkisiz erişim nedir?.
Azure Kubernetes Service için otomatik yetkisiz erişim
Azure Kubernetes Service (AKS) otomatik dağıtım özel ölçümleri destekliyor mu?
Node.js'de özel metrikler istiyorsanız, uygulamaları Azure İzleyici OpenTelemetry Distro ile el ile araçlandırın.
Java, otomatik aygıt kullanımı ile özel ölçümler oluşturulmasına izin verir. Kodunuzu güncelleştirerek ve bu özelliği etkinleştirerek özel ölçümler toplayabilirsiniz . Kodunuzda zaten özel ölçümler varsa, otomatik araçlandırma etkinleştirildiğinde bunlar akış sağlar.
AKS otomatik enstrümantasyonu, Açık Kaynak Yazılım (OSS) OpenTelemetry SDK'sı ile enstrümante edilmiş uygulamalarla çalışır mı?
AKS otomatik enstrümantasyonu, bir OSS OpenTelemetry SDK'sı tarafından üçüncü taraflara gönderilen telemetriyi kesintiye uğratabilir.
AKS otomatik enstrümantasyonu el ile enstrümantasyon ile bir arada bulunabilir mi?
AKS otomatik enstrümantasyonu, hem Application Insights klasik API SDK'sı hem de OpenTelemetry Distro gibi manuel enstrümantasyon seçenekleriyle yan yana çalışacak şekilde tasarlanmıştır.
Yinelenen verileri her zaman engeller ve özel ölçümlerin çalışmasını sağlar.
Otomatik araçlandırmanın veya manuel araçlandırmanın ne zaman öncelikli olacağını belirlemek için bu grafiğe bakın.
| Dil | Öncelik |
|---|---|
| Node.js | Manuel enstrümantasyon |
| Java | Otomatik enstrümantasyon |
Azure İzleyici OpenTelemetry Distro'nun en son ve en güvenli sürümlerini kullandığımı nasıl garanti ederim?
Azure İzleyici OpenTelemetry Distro'da algılanan güvenlik açıkları önceliklendirilir, düzeltilir ve sonraki sürümde yayımlanmaktadır.
AKS otomatik enstrümantasyonu, dağıtımınız her değiştirildiğinde veya yeniden başlatıldığında, uygulama podlarınıza Azure Monitor OpenTelemetry Distro'nun en son sürümünü enjekte eder.
OpenTelemetry Distro, uzun süre boyunca değiştirilmemiş veya yeniden başlatılmamış dağıtımlarda savunmasız hale gelebilir. Bu nedenle, dağıtımın son sürümünü kullandığınızdan emin olmak için dağıtımların haftalık olarak güncellenmesi veya başlatılması gerektiğini öneririz.
Azure İzleyici OpenTelemetry Distro'su hakkında nasıl daha fazla bilgi edinebilirim?
Bu özellik, Azure Monitor OpenTelemetry Distro'yu uygulama podlarına ekleyerek otomatik enstrümantasyon gerçekleştirir.
Java için bu özellik, Java için Azure Monitor OpenTelemetry Distro'yu tümleştirir. Java enstrümantasyon ikili dosyası hakkında daha fazla bilgi edinmek için Java dağıtımı belgelerimize bakın.
Node.jsiçin, Node.jsiçin Azure İzleyici OpenTelemetry Distro'muzu temel alan bir otomatik enstrümantasyon ikili dosyası enjekte ederiz. Daha fazla bilgi için Node.js dağıtım belgelerine bakın. Node.js için bağımsız bir otomatik izleme sistemimiz olmadığını unutmayın; bu nedenle, dağıtımımızın belgeleri manuel izlemeye yönelik olarak hazırlanmıştır. Kod tabanlı manuel araçlandırma ile ilgili yapılandırma adımlarını atlayabilirsiniz. Ancak, varsayılan ayarlar, ortam değişkeni yapılandırmaları vb. gibi dağıtım belgelerimizdeki diğer her şey bu özellik için geçerlidir.
AKS için otomatik yetkisiz erişim hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. AKS için otomatik enstrümantasyon.
Bağlantı stringleri
Yeni Azure bölgeleri, bağlantı dizelerinin kullanılmasını gerektirir mi?
Yeni Azure bölgeleri, enstrümantasyon anahtarları yerine bağlantı dizelerinin kullanılmasını gerektirir. Bağlantı dizesi, telemetri verilerinizle ilişkilendirmek istediğiniz kaynağı tanımlar. Ayrıca, kaynaklarınızın telemetrinizin varış noktası olarak kullandığı uç noktaları değiştirmenizi sağlar. Bağlantı dizisini kopyalayın ve uygulamanızın koduna veya bir ortam değişkenine ekleyin.
Bağlantı dizgilerini mi yoksa araç anahtarlarını mı kullanmalıyım?
Bağlantı dizelerini enstrümantasyon anahtarları yerine kullanmanızı öneririz.
Ortam değişkenini ne zaman ayarlamam gerekiyor?
Sistemin otomatik olarak sağlamadığı tüm senaryolarda APPLICATIONINSIGHTS_CONNECTION_STRING öğesini manuel olarak ayarlayın. Bu senaryolar şunlardır, ancak bunlarla sınırlı değildir: yerel geliştirme ve ASP.NET Core tümleştirmesi kullanan .NET Yalıtılmış İşlevleri. Bu durumlarda, ortam değişkeni OpenTelemetry hattının telemetriyi Application Insights'a göndermesini sağlar. Daha fazla bilgi için, bir ortam değişkeni ile bağlantı dizgilerini yapılandırma hakkında Application Insights'ta OpenTelemetry'yi Yapılandırma bölümüne bakın.
Bölgesel veri uyumluluğu gereksinimlerini karşılamak için küresel bir web uygulamasını nasıl takip ederim?
Bölgesel veri uyumluluğu gereksinimlerini karşılamak için genel uç nokta yerine bölgesel Application Insights uç noktalarını kullanın. Genel uç nokta, verilerin belirli bir bölgede kalmasını garanti etmez. Bölgesel uç noktalar, düzenlemeye tabi alanlardaki kullanıcılardan alınan telemetri verilerinin yalnızca bu bölgelerdeki veri merkezlerine gönderilmesini sağlamaya yardımcı olur.
Genel web uygulamanızı bölgesel uyumluluk için yapılandırmak için:
- Avrupa Birliği veya AMERIKA Birleşik Devletleri gibi katı uyumluluk gereksinimlerine sahip bölge başına bir Application Insights kaynağı oluşturun.
- Diğer tüm bölgelerdeki kullanıcılar için başka bir Application Insights kaynağı oluşturun.
- Uygulamanızı, her kullanıcının bölgesine göre uygun Application Insights kaynağına telemetri gönderecek şekilde yapılandırın. IP adresi, hesap meta verileri veya konum ayarları gibi sinyalleri kullanarak bölgeyi belirleyin.
- Bölgeler arasında birleşik sorgu deneyimine ihtiyacınız varsa tüm Application Insights kaynaklarını Log Analytics çalışma alanına bağlayın.
Örneğin:
- Bölge A bağlantı dizesini kullanarak Bölge A kullanıcılarından Bölge A Application Insights kaynağına veri gönderme.
- Bölge B bağlantı dizesini kullanarak B Bölgesi kullanıcılarından Bölge B Application Insights kaynağına veri gönderin.
- Diğer tüm kullanıcı verilerini farklı bir bağlantı dizesi kullanarak genel amaçlı bir Application Insights kaynağına gönderin.
Önemli
Genel uç noktanın kullanılması bölgesel uyumluluğu sağlamaz. Veri yerleşimi gereksinimlerini karşılamak için her zaman bölgeye özgü uç noktaları kullanın ve kullanıcının bölgesine göre telemetriyi yönlendirin.
Aşağıdaki diyagramda genel web uygulaması için örnek bir kurulum gösterilmektedir:
Application Insights'ta bağlantı dizeleri hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Bağlantı dizeleri.
Application Insights kaynaklarını oluşturma ve yapılandırma
Application Insights kaynağını yeni bir bölgeye taşımak Nasıl yaparım??
Mevcut Application Insights kaynaklarının bölgeler arasında aktarılması desteklenmez ve geçmiş verileri yeni bir bölgeye geçiremezsiniz. Geçici çözüm şunları içerir:
- İstenen bölgede yeni bir Application Insights kaynağı oluşturma.
- Özgün kaynaktaki tüm benzersiz özelleştirmeleri yeni kaynakta yeniden oluşturma.
- Uygulamanızı yeni bölge kaynağının bağlantı dizesi ile güncelleyerek.
- Yeni Application Insights kaynağında her şeyin beklendiği gibi çalıştığından emin olmak için test etme.
- Özgün Application Insights kaynağını tutmaya veya silmeye karar verin. Klasik bir kaynağın silinmesi, tüm geçmiş verileri kaybetme anlamına gelir. Kaynak çalışma alanı tabanlıysa veriler Log Analytics'te kalır ve saklama süresi dolana kadar geçmiş verilere erişim sağlar.
Yeni bölgedeki kaynak için genellikle el ile yeniden oluşturulması veya güncelleştirilmiş olması gereken benzersiz özelleştirmeler şunlardır ancak bunlarla sınırlı değildir:
- Özel panoları ve çalışma kitaplarını yeniden oluşturun.
- Özel günlük/ölçüm uyarılarının kapsamını yeniden oluşturun veya güncelleştirin.
- Kullanılabilirlik uyarılarını yeniden oluşturun.
- Kullanıcılarınızın yeni kaynağa erişmesi için gereken özel Azure rol tabanlı erişim denetimi ayarlarını yeniden oluşturun.
- Yutma örneklemesi, veri saklama, günlük sınır ve özel ölçüm etkinleştirme ayarlarını çoğaltın. Bu ayarlar Kullanım ve tahmini maliyetler bölmesi aracılığıyla denetlenmektedir .
- API anahtarlarına dayalı tümleştirme, örneğin yayın ek açıklamaları ve canlı ölçümler güvenli denetim kanalı. Yeni API anahtarları oluşturmanız ve ilişkili tümleştirmeyi güncelleştirmeniz gerekir.
- Klasik kaynaklarda sürekli dışarı aktarma yeniden yapılandırılmalıdır.
- Çalışma alanı tabanlı kaynaklarda tanılama ayarlarının yeniden yapılandırılması gerekir.
Azure Resource Manager dağıtımlarımda sağlayıcıları ('Microsoft.Insights', 'components').apiVersions[0] kullanabilir miyim?
API sürümünü doldurmaya yönelik bu yöntemi kullanmanızı önermeyiz. En yeni sürüm, hataya neden olan değişiklikler içerebilecek önizleme sürümlerini temsil edebilir. Daha yeni önizleme olmayan sürümlerde bile API sürümleri her zaman mevcut şablonlarla geriye dönük olarak uyumlu değildir. Bazı durumlarda API sürümü tüm abonelikler tarafından kullanılamayabilir.
Application Insights kaynaklarını oluşturma ve yapılandırma hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights kaynaklarını oluşturma ve yapılandırma.
Telemetri veri modeli
Veri modeli veya şema sorunlarını ve önerilerini nasıl bildirebilirim?
İzleme kampanyasının etkisini nasıl ölçebilirim?
PageView Telemetrisi URL içerir ve Kusto'da bir regex işlevi kullanarak UTM parametresini ayrıştırabilirsiniz.
Bazen, kullanıcı veya kuruluş tarayıcı ayarlarında Kullanıcı Aracısı göndermeyi devre dışı bırakırsa bu veriler eksik veya yanlış olabilir. UA Ayrıştırıcısı kayıt defteri tüm cihaz bilgilerini içermeyebilir. Veya Application Insights en son güncelleştirmeleri benimsememiş olabilir.
Özel bir ölçüm neden hatasız başarılı olur ama günlük gösterilmez?
Dize değerleri kullanıyorsanız bu durum oluşabilir. Yalnızca sayısal değerler özel ölçümlerle çalışır.
Telemetri veri modeli hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için Application Insights telemetri veri modeli bkz.
.NET ile günlüğe kaydetme
ILogger günlüklerinden hangi Application Insights telemetri türü üretilir? Application Insights'ta ILogger günlüklerini nerede görebilirim?
ApplicationInsightsLoggerProvider günlükleri ILogger yakalar ve bunlardan oluşturur TraceTelemetry . üzerinde yöntemine ExceptionLogILoggerbir ExceptionTelemetry nesne geçirilirse, yerine TraceTelemetryoluşturulur.
ILogger Telemetrisi Görüntüleme
Azure portalında:
- Azure portalına gidin ve Application Insights kaynağınıza erişin.
- Application Insights içindeki Günlükler bölümünü seçin.
- Tabloda depolanan
tracesILogger iletilerini sorgulamak için Kusto Sorgu Dili (KQL) kullanın. Örnek Sorgu:traces | where message contains "YourSearchTerm". - ILogger verilerini önem derecesine, zaman aralığına veya belirli ileti içeriğine göre filtrelemek için sorgularınızı geliştirin.
Visual Studio'da (Yerel Hata Ayıklayıcı):
- Visual Studio'da uygulamanızı hata ayıklama modunda başlatın.
- Uygulama çalışırken Tanılama Araçları penceresini açın.
- Olaylar sekmesinde ILogger günlükleri diğer telemetri verileriyle birlikte görüntülenir.
- Belirli ILogger iletilerini bulmak için Tanılama Araçları penceresindeki arama ve filtreleme özelliklerini kullanın.
her zaman göndermeyi TraceTelemetrytercih ediyorsanız şu kod parçacığını kullanın:
builder.AddApplicationInsights(
options => options.TrackExceptionsAsExceptionTelemetry = false);
Neden bazı ILogger günlükleri diğerleriyle aynı özelliklere sahip değil?
Application Insights her telemetri için kullanılan bilgileri kullanarak ILogger günlükleri yakalar ve gönderirTelemetryConfiguration. Ama bir istisna var. Varsayılan olarak, TelemetryConfiguration Program.cs veya Startup.cs oturum açtığınızda tam olarak ayarlanmadı. Bu yerlerden gelen günlükler varsayılan yapılandırmaya sahip olmadığından tüm TelemetryInitializer örnekleri ve TelemetryProcessor örnekleri çalıştırmıyorlar.
Microsoft.Extensions.Logging.ApplicationInsights tek başına paketini kullanıyorum ve daha fazla özel telemetriyi el ile günlüğe kaydetmek istiyorum. Bunu nasıl yapmalıyım?
Tek başına paketi kullandığınızda bağımlılık TelemetryClient ekleme (DI) kapsayıcısına eklenmez. Öğesinin TelemetryClient yeni bir örneğini oluşturmanız ve aşağıdaki kodda gösterildiği gibi günlükçü sağlayıcısının kullandığı yapılandırmayı kullanmanız gerekir. Bu gereksinim, tüm özel telemetri ve telemetri ILoggeriçin aynı yapılandırmanın kullanılmasını sağlar.
public class MyController : ApiController
{
// This TelemetryClient instance can be used to track additional telemetry through the TrackXXX() API.
private readonly TelemetryClient _telemetryClient;
private readonly ILogger _logger;
public MyController(IOptions<TelemetryConfiguration> options, ILogger<MyController> logger)
{
_telemetryClient = new TelemetryClient(options.Value);
_logger = logger;
}
}
Uyarı
Application Insights'ı Microsoft.ApplicationInsights.AspNetCore etkinleştirmek için paketini kullanırsanız, bu kodu doğrudan oluşturucuya alacak TelemetryClient şekilde değiştirin.
SDK yüklü değil ve Azure Web Apps uzantısını kullanarak ASP.NET Core uygulamalarım için Application Insights'ı etkinleştiriyorum. Yeni sağlayıcıyı Nasıl yaparım? kullanıyorsunuz?
Azure Web Apps'teki Application Insights uzantısı yeni sağlayıcıyı kullanır. Uygulamanızın appsettings.json dosyasındaki filtreleme kurallarını değiştirebilirsiniz.
.NET ile günlüğe kaydetme hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. .NET ile Application Insights günlüğü.
Java Profil Oluşturucu
Azure Monitor Application Insights Java Profili Oluşturma nedir?
Java Profiler, özelleştirilmiş bir yapılandırma kullanarak uygulamanızın profilini oluşturmak için Java Flight Recorder (JFR) kullanır.
Java Flight Recorder nedir?
Java Flight Recorder (JFR), çalışan bir Java uygulamasının profil oluşturma verilerini toplamaya yönelik bir araçtır. JFR, Java Sanal Makinesi (JVM) ile tümleşiktir ve performans sorunlarını gidermek için kullanılır. Java SE JFR Runtime hakkında daha fazla bilgi edinin.
App Insights Java Profil oluşturma özelliğini etkinleştirmenin fiyat ve/veya lisans ücreti üzerindeki etkileri ne olur?
Java Profil Oluşturma, Application Insights ile ücretsiz bir özelliktir. Azure Monitor Application Insights fiyatlandırması, veri alma maliyetine dayanır.
Hangi Java profil oluşturma bilgileri toplanır?
JFR tarafından toplanan profil oluşturma verileri şunları içerir: yöntem ve yürütme profil oluşturma verileri, çöp toplama verileri ve kilit profilleri.
App Insights Java Profil oluşturma özelliğini nasıl kullanabilirim ve verileri nasıl görselleştirebilirim?
JFR kaydı tercih ettiğiniz araçla görüntülenebilir ve analiz edilebilir, örneğin Java Mission Control (JMC).
App Insights Java Profil Oluşturma ile performans tanılama ve düzeltme önerileri sağlanıyor mu?
'Performans tanılama ve öneriler', Application Insights Java Tanılaması olarak yakında kullanıma sunulan yeni bir özelliktir. Bu özelliği önizlemek için kaydolabilirsiniz. JFR kaydı Java Mission Control (JMC) ile görüntülenebilir.
App Insights'ta isteğe bağlı ve otomatik Java Profili Oluşturma arasındaki fark nedir?
İsteğe bağlı profil oluşturma, kullanıcının gerçek zamanlı olarak tetikleyici kullanmasıyla yapılırken; otomatik profil oluşturma önceden yapılandırılmış tetikleyicilerle yapılır.
İsteğe bağlı profil oluşturma seçeneği için Şimdi ProfilLe seçeneğini kullanın. Profil Şimdi , Application Insights örneğine eklenmiş olan tüm aracıların profilini hemen oluşturur.
Otomatik profil oluşturma, bir kaynak eşiğine ulaşılarak tetikleniyor.
Hangi Java profil oluşturma tetikleyicilerini yapılandırabilirim?
Application Insights Java Aracısı şu anda CPU ve bellek tüketimini izlemeyi desteklemektedir. CPU eşiği, makinedeki tüm kullanılabilir çekirdeklerin yüzdesi olarak yapılandırılır. Bellek, bölgenin mümkün olan en büyük boyutuna karşı geçerli Tenured bellek bölgesi (OldGen) doluluğudur.
Java Profil oluşturmayı etkinleştirmek için gerekli önkoşullar nelerdir?
Önkoşulları inceleyin.
Mikro hizmetler uygulaması için Java Profil oluşturma kullanabilir miyim?
Evet, JFR kullanarak mikro hizmetler çalıştıran bir JVM'nin profilini oluşturabilirsiniz.
Java Profiler hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Java için Azure İzleyici Application Insights Profil Oluşturucu.
Örnekleme geçersiz kılmaları - Java için Application Insights
Örnekleme geçersiz kılmalarını etkinleştirmek için el ile izleme kullanmam gerekiyor mu?
Hayır, örnekleme geçersiz kılmaları genel kullanıma sunuldu (GA) ve hem otomatik yetkisiz erişim hem de el ile izleme ile kullanılabilir.
Azure App Service'i otomatik yetkisiz erişimle kullanırken örnekleme geçersiz kılmalarını nasıl yapılandırebilirim?
Otomatik enstrümantasyon kullanıyorsanız, Azure portalında applicationinsights.json dosyasını güncelleyin.
Örnekleme geçersiz kılmaları için Application Insights aracı dosyasını el ile karşıya yüklemek gerekiyor mu?
Otomatik enstrümantasyon için elle bir ajan yüklemesi gerekmez. Ancak, manuel izleme için Application Insights ajansı JAR dosyasını ve yapılandırma dosyalarını dağıtım paketinize eklemeniz gerekir.
El ile izleme bağlamında "yerel geliştirme" ile "uygulama sunucusu" arasındaki fark nedir?
Yerel geliştirme, geliştiricinin makinesi veya Azure Cloud Shell örneği gibi uygulamanın derlendiği veya test edildiği ortamı ifade eder. Uygulama sunucusu, Azure App Service ortamında Tomcat 11 gibi uygulamayı çalıştıran web sunucusuna başvurur. Manuel enstrümantasyon kullanırken, ajan JAR dosyasının uygulama sunucusuna doğru şekilde yerleştirildiğinden emin olmalısınız.
Java çalışma zamanı olan bir Azure App Service kullanıyorsam (örneğin, Tomcat 11), örnekleme geçersiz kılmalarını nasıl yapılandırebilirim?
Otomatik yetkisiz erişim için Azure portalı aracılığıyla örnekleme geçersiz kılmalarını yapılandırabilirsiniz. El ile izleme kullanıyorsanız Application Insights aracısı JAR'sini uygun dizine yerleştirmeniz ve istediğiniz örnekleme ayarlarına applicationinsights.json dosyasını eklemeniz gerekir.
Örnekleme geçersiz kılmaları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Örnekleme geçersiz kılmaları - Java için Azure İzleyici Application Insights.
Telemetri işlemcileri
Günlük işlemcisi günlük dosyalarını telemetryClient.trackTrace() kullanarak neden işlemez?
TelemetryClient.trackTrace() Application Insights Classic SDK köprüsünün bir parçasıdır ve log işlemcileri yalnızca yeni OpenTelemetry tabanlı enstrümantasyon ile çalışır.
Telemetri işlemcileri hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Telemetri işlemcileri (önizleme) - Java için Azure İzleyici Application Insights.
JavaScript SDK'sı
Kullanıcı ve oturum sayıları nelerdir?
- JavaScript SDK'sı, dönen kullanıcıları tanımlamak için web istemcisinde bir kullanıcı tanımlama bilgisi ve etkinlikleri gruplandırmak için bir oturum tanımlama bilgisi ayarlar.
- İstemci tarafı betiği yoksa, sunucuda tanımlama bilgileri ayarlayabilirsiniz.
- Gerçek bir kullanıcı sitenizi farklı tarayıcılarda veya özel/gizli gözatma veya farklı makineler kullanarak kullanıyorsa, bunlar birden çok kez sayılır.
- Makineler ve tarayıcılar arasında oturum açmış bir kullanıcıyı tanımlamak için setAuthenticatedUserContext() için bir çağrı ekleyin.
JavaScript SDK performansı/yükü nedir?
Application Insights JavaScript SDK'sının web sitenizde çok az yükü vardır. Sadece 36 KB boyutunda sıkıştırılmış (gzip) olan SDK, yalnızca ~15 ms'de başlatılarak, web sitenizin yükleme süresine ihmal edilebilir derecede küçük bir ekleme yapar. SDK'yi kullandığınızda kitaplığın temel bileşenleri hızla yüklenir ve arka planda tam komut dosyası indirilir.
Ayrıca, betik CDN'den indirilirken sayfanızın tüm izleme işlemleri kuyruğa alınır, böylece sayfanızın yaşam döngüsü süresince telemetri kaybı olmaz. Bu kurulum işlemi, sayfanıza kullanıcılarınız tarafından görülemeyen sorunsuz bir analiz sistemi sağlar.
JavaScript SDK'sı hangi tarayıcıları destekler?
|
|
|
|
|
|---|---|---|---|---|
| Chrome Son Sürüm ✔ | Firefox En Yeni | v3.x: IE 9+ ve Microsoft Edge ✔ v2.x: IE 8+ Uyumlu ve Microsoft Edge ✔ |
Opera'nın En Son ✔ | Safari'nin Son Sürümü ✔ |
JavaScript SDK'sı için kod örneklerini nerede bulabilirim?
Çalıştırılabilir örnekler için bkz . Application Insights JavaScript SDK örnekleri.
JavaScript SDK ile ES3/Internet Explorer 8 uyumluluğu nedir?
Bu SDK'nın "çalışmaya" devam ettiğinden ve eski bir tarayıcı tarafından yüklendiğinde JavaScript yürütmesini bozmadığından emin olmak için gerekli önlemleri almalıyız. Eski tarayıcıları desteklememek ideal olacaktır, ancak çok sayıda büyük müşteri kullanıcılarının hangi tarayıcıyı kullanmayı seçtiğini denetleyemez.
Bu ifade yalnızca en düşük ortak özellik kümesini desteklediğimiz anlamına gelmez. ES3 kod uyumluluğunu korumamız gerekiyor. Yeni özellikler, ES3 JavaScript ayrıştırmayı bozmayacak şekilde ve isteğe bağlı bir özellik olarak eklenmelidir.
Internet Explorer 8 desteğiyle ilgili tüm ayrıntılar için bkz. GitHub.
JavaScript SDK'sı açık kaynak mı?
Evet, Application Insights JavaScript SDK'sı açık kaynak. Kaynak kodu görüntülemek veya projeye katkıda bulunmak için resmi GitHub deposuna bakın.
JavaScript SDK'sı hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Azure İzleyici Application Insights Gerçek Kullanıcı İzlemesini Etkinleştirme.
JavaScript SDK yapılandırması
JavaScript SDK'sı için üçüncü taraf sunucu yapılandırmamı nasıl güncelleştirebilirim?
Sunucu tarafının bu üst bilgilerle bağlantıları kabul edebilmesi gerekir. Sunucu tarafındaki yapılandırmaya Access-Control-Allow-Headers bağlı olarak, genellikle , Request-Idve Request-Context (W3C dağıtılmış üst bilgisi) ekleyerek traceparentsunucu tarafı listesini genişletmek gerekir.
Access-Control-Allow-Headers: Request-Id, traceparent, Request-Context, , <your header>
JavaScript SDK'sı için dağıtılmış izlemeyi nasıl devre dışı bırakabilirim?
Dağıtılmış izleme, yapılandırmada devre dışı bırakılabilir.
HTTP 502 ve 503 yanıtları her zaman Application Insights tarafından yakalanır mı?
Hayır. "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" hataları her zaman Application Insights tarafından yakalanmaz. İzleme için yalnızca istemci tarafı JavaScript kullanılıyorsa, bu davranış beklenir çünkü hata yanıtı, izlenen JavaScript kod parçacığının işlendiği HTML üst bilgisini içeren sayfadan önce döndürülür.
Sunucu tarafı izleme etkinleştirilmiş bir sunucudan 502 veya 503 yanıtı gönderildiyse, hatalar Application Insights SDK'sı tarafından toplanır.
Bir uygulamanın web sunucusunda sunucu tarafı izleme etkinleştirildiğinde bile, bazen Application Insights tarafından 502 veya 503 hatası yakalanmaz. Birçok modern web sunucusu, istemcinin doğrudan iletişim kurmasına izin vermez. Bunun yerine, istemci ve ön uç web sunucuları arasında ileri geri bilgi geçirmek için ters proxy'ler gibi çözümler kullanılır.
Bu senaryoda, ters ara sunucu katmanındaki bir sorun nedeniyle istemciye 502 veya 503 yanıtı döndürülebilir, bu nedenle Application Insights tarafından kullanıma açık olarak yakalanmaz. Bu katmandaki sorunları algılamaya yardımcı olmak için günlükleri ters proxy'nizden Log Analytics'e iletmeniz ve 502 veya 503 yanıtlarını denetlemek için özel bir kural oluşturmanız gerekebilir. 502 ve 503 hatalarının yaygın nedenleri hakkında daha fazla bilgi edinmek için bkz. Azure Uygulaması Hizmeti'nde "502 hatalı ağ geçidi" ve "503 hizmet kullanılamıyor" HTTP hatalarını giderme.
JavaScript SDK yapılandırması hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights JavaScript SDK yapılandırması.
JavaScript çerçeve uzantıları
Application Insights tarayıcı, işletim sistemi, dil ve model gibi cihaz bilgilerini nasıl oluşturur?
Tarayıcı, isteğin HTTP üst bilgisinde Kullanıcı Aracısı dizesini geçirir. Application Insights alma hizmeti, veri tablolarında ve deneyimlerinde gördüğünüz alanları oluşturmak için UA Ayrıştırıcısı'nı kullanır. Sonuç olarak, Application Insights kullanıcıları bu alanları değiştiremez.
Bazen, kullanıcı veya kuruluş tarayıcı ayarlarında Kullanıcı Aracısı göndermeyi devre dışı bırakırsa bu veriler eksik veya yanlış olabilir. UA Ayrıştırıcısı kayıt defteri tüm cihaz bilgilerini içermeyebilir. Veya Application Insights en son güncelleştirmeleri benimsememiş olabilir.
JavaScript çerçeve uzantıları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Application Insights JavaScript SDK'sı için çerçeve uzantısını etkinleştirme.
Yönetilen çalışma alanları
Klasik kaynaklara başvuran betikleri veya otomasyonu güncelleştirmem gerekiyor mu?
Hayır. Mevcut ARM şablonları ve API çağrıları çalışmaya devam eder. Klasik bir kaynak oluşturmaya çalıştığınızda, bunun yerine yönetilen çalışma alanına sahip çalışma alanı tabanlı bir kaynak oluşturulur.
Kaynağım taşınmadan önce bana bildirilir mi?
Hayır. Bireysel kaynak geçişleri için bildirim mevcut değil. Kaynaklarınızın ne zaman ve nasıl geçirilir olduğunu denetlemek için el ile geçişi kullanın.
Geçiş işlemi ne kadar sürer?
Bireysel geçişler genellikle iki dakikadan kısa sürede tamamlar. Tam dağıtım tüm bölgelerde birkaç hafta boyunca gerçekleşir.
Bir kaynağın migrate edilip edilmediğini nasıl anlayabilirim?
Geçiş sonrasında kaynak, Genel Bakış sayfasındaki log analytics çalışma alanına bağlanır. Klasik emeklilik bildirimi kaldırılır ve emeklilik çalışma kitabında artık kaynak listelenmez.
Geçiş sonrasında faturalamam değişecek mi?
Maliyetler genellikle benzer kalır. Çalışma alanı tabanlı Application Insights maliyet tasarrufu özellikleri sağlar ve fiyatlandırma planlarını gözden geçirmenizi öneririz.
Eski bir faturalama modeli kullanıyorsanız ayrıntılar için fiyatlandırma belgelerini gözden geçirin.
Geçiş sırasında uyarıları veya kullanılabilirlik testlerini kaybeder miyim?
Hayır. Tüm uyarılar, panolar ve kullanılabilirlik testleri değişmeden kalır ve geçişten sonra çalışmaya devam eder.
Yönetilen çalışma alanları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'ta yönetilen çalışma alanları.
Node.js
Telemetri bağıntısını nasıl devre dışı bırakabilirim?
Telemetri bağıntısını devre dışı bırakmak için yapılandırmada özelliğini kullanın correlationHeaderExcludedDomains . Daha fazla bilgi için bkz . ApplicationInsights-node.js.
İstenen log seviyesini nasıl yapılandırabilirim?
Application Insights'in kullanacağı istenen günlük düzeyini ayarlamak için APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL ortam değişkenini kullanın.
Desteklenen değerler NONE, ERROR, WARN, INFO, DEBUG, VERBOSE ve ALL değerleridir.
Daha fazla bilgi için bkz . ApplicationInsights-node.js.
Application Insights ile Node.js hizmetleri ve uygulamaları izleme hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights ile Node.js hizmetlerinizi ve uygulamalarınızı izleme.
Azure Monitör OpenTelemetry
Application Insights SDK sürümlerinin ve adlarının listesini nerede bulabilirim?
SDK sürümlerinin ve adlarının listesi GitHub'da barındırılır. Daha fazla bilgi için bkz . SDK Sürümü.
OpenTelemetry hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'ta OpenTelemetry ile telemetri toplama.
.NET Application Insights SDK'larından Azure İzleyici OpenTelemetry'ye geçiş
SDK API'leri OpenTelemetry kavramlarıyla nasıl eşler?
OpenTelemetry, herhangi bir satıcıya bağlı olmayan bir gözlemlenebilirlik çerçevesidir. OpenTelemetry SDK'sında veya kitaplıklarında Application Insights API'leri yoktur. Geçiş öncesinde, OpenTelemetry'nin bazı kavramlarını anlamak önemlidir.
Application Insights'ta tüm telemetri tek bir
TelemetryClientveTelemetryConfigurationaracılığıyla yönetildi. OpenTelemetry'de üç telemetri sinyalinin (İzlemeler, Ölçümler ve Günlükler) her biri kendi yapılandırmasına sahiptir. Dış kitaplıklar olmadan .NET çalışma zamanı ortamı aracılığıyla manuel olarak telemetri oluşturabilirsiniz. Daha fazla bilgi için dağıtılmış izleme, ölçümler ve günlüğe kaydetme konusundaki .NET kılavuzlarına bakın.Application Insights, uygulamanız için telemetri verilerini otomatik olarak toplamak amacıyla
TelemetryModuleskullanır. Bunun yerine OpenTelemetry, belirli bileşenlerden (İstekler için AspNetCore ve Bağımlılıklar için HttpClient gibi) telemetri toplamak için İzleme kitaplıklarını kullanır.Application Insights, telemetriyi ek bilgilerle zenginleştirmek veya özellikleri geçersiz kılmak için
TelemetryInitializerskullandı. OpenTelemetry ile, belirli bir sinyali özelleştirmek için bir İşlemci yazabilirsiniz. Buna ek olarak, birçok OpenTelemetry Instrumentation kitaplığı belirli bir bileşen tarafından oluşturulan telemetriyi özelleştirmek için birEnrichyöntem sunar.Telemetriyi filtrelemek için kullanılan
TelemetryProcessorsApplication Insights. OpenTelemetry İşlemcisi , belirli bir sinyale filtreleme kuralları uygulamak için de kullanılabilir.
Geçiş kılavuzu için bkz. .NET Application Insights SDK'larından Azure İzleyici OpenTelemetry'ye geçiş.
Application Insights telemetri türleri OpenTelemetry ile nasıl eşlenmiştir?
Bu tablo, Application Insights veri türlerini OpenTelemetry kavramlarına ve bunların .NET uygulamalarına eşler.
| Azure İzleyici Tablosu | Uygulama İçgörüleri VeriTürü | OpenTelemetry Veri Tipi | .NET Uygulaması |
|---|---|---|---|
| özelleştirilmişEtkinlikler | Etkinlik Telemetrisi | Mevcut Değil | Mevcut Değil |
| customMetrics | MetricTelemetry | Ölçümler | System.Diagnostics.Metrics.Meter |
| bağımlılıklar | Bağımlılık Telemetrisi | Kapsamlar (İstemci, Dahili, Tüketici) | System.Diagnostics.Activity |
| İstisnalar | ExceptionTelemetry | Özel durumlar | System.Exception |
| İstekler | İstek Telemetrisi | Spans (Sunucu, Üretici) | System.Diagnostics.Activity |
| izlemeler | İzleme Telemetri | Kayıtlar | Microsoft.Extensions.Logging.ILogger |
| izlemeler | İzleme Telemetri | Span Olayları | System.Diagnostics.ActivityEvent |
Aşağıdaki belgeler daha fazla bilgi sağlar.
Application Insights örnekleme kavramları OpenTelemetry ile nasıl uyarlanır?
Application Insights örneklemeyi yapılandırmak için birden çok seçenek sunarken, Azure İzleyici Verme veya Azure İzleyici Dağıtımı yalnızca sabit oranda örnekleme sunar. Yalnızca İstekler ve Bağımlılıklar (OpenTelemetry traces) örneklenebilir.
Örneklemeyi yapılandırma hakkında ayrıntılı kod örnekleri için bkz. Örneklemeyi Etkinleştirme kılavuzumuz
Telemetri İşlemcileri ve Başlatıcıları OpenTelemetry ile nasıl bağlantılıdır?
Application Insights .NET SDK'sında telemetriyi filtrelemek ve değiştirmek veya atmak için telemetri işlemcilerini kullanın. Özel özellikler eklemek veya değiştirmek için telemetri başlatıcılarını kullanın. Daha fazla bilgi için Azure İzleyici belgelerine bakın. OpenTelemetry, bu kavramları, telemetriyi zenginleştiren ve filtreleyen etkinlik veya günlük işlemcileriyle değiştirir.
İzlemeleri Filtreleme
OpenTelemetry'de telemetri verilerini filtrelemek için bir etkinlik işlemcisi uygulayabilirsiniz. Bu örnek, Azure İzleyici belgelerinde açıklandığı gibi telemetri verilerini filtrelemek için Application Insights örneğine eşdeğerdir. Örnek, başarısız bağımlılık çağrılarının nerede filtrelendiğini gösterir.
using System.Diagnostics;
using OpenTelemetry;
internal sealed class SuccessfulDependencyFilterProcessor : BaseProcessor<Activity>
{
public override void OnEnd(Activity activity)
{
if (!OKtoSend(activity))
{
activity.ActivityTraceFlags &= ~ActivityTraceFlags.Recorded;
}
}
private bool OKtoSend(Activity activity)
{
return activity.Kind == ActivityKind.Client && activity.Status == ActivityStatusCode.Ok;
}
}
Bu işlemciyi kullanmak için bir TracerProvider oluşturmanız ve işlemciyi AddAzureMonitorTraceExporter'den önce eklemeniz gerekir.
using OpenTelemetry.Trace;
public static void Main()
{
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddProcessor(new SuccessfulDependencyFilterProcessor())
.AddAzureMonitorTraceExporter()
.Build();
}
Günlükleri Filtreleme
ILogger uygulamaları, günlük filtreleme uygulamak için yerleşik bir mekanizmaya sahiptir. Bu filtreleme, OpenTelemetryLoggerProvider dahil olmak üzere, her kayıtlı sağlayıcıya gönderilen günlükleri denetlemenize olanak tanır. "OpenTelemetry", filtreleme kurallarını yapılandırmada kullanılanOpenTelemetryLoggerProvider takma addır.
Aşağıdaki örnek, "Hata" öğesini varsayılan LogLevel olarak tanımlar ve ayrıca kullanıcı tanımlı bir kategori için "Uyarı" değerini en düşük LogLevel değer olarak tanımlar. Tanımlanan bu kurallar yalnızca için OpenTelemetryLoggerProvidergeçerlidir.
builder.AddFilter<OpenTelemetryLoggerProvider>("*", LogLevel.Error);
builder.AddFilter<OpenTelemetryLoggerProvider>("MyProduct.MyLibrary.MyClass", LogLevel.Warning);
Daha fazla bilgi için lütfen günlüklerde OpenTelemetry .NET belgelerini okuyun.
İzlemelere Özel Özellikler Ekleme
OpenTelemetry'de, telemetri verilerini daha fazla özellik ile zenginleştirmek için etkinlik işlemcilerini kullanabilirsiniz. Telemetri özelliklerini değiştirebileceğiniz Application Insights'ta telemetri başlatıcılarını kullanmaya benzer.
Varsayılan olarak, Azure İzleyici Dışarı Aktarma işlemi tüm HTTP isteklerini 400 veya üzeri bir yanıt koduyla başarısız olarak işaretler. Ancak, 400'ü başarılı olarak değerlendirmek istiyorsanız, etkinliği başarılı olarak ayarlayan ve daha fazla telemetri özelliği eklemek için bir etiket ekleyen bir zenginleştirme etkinliği işlemcisi ekleyebilirsiniz. Azure İzleyici belgelerinde açıklandığı gibi Application Insights'ta başlatıcı kullanarak özellikleri eklemeye veya değiştirmeye benzer.
Özel özellikler ekleme ve belirli yanıt kodları için varsayılan davranışı geçersiz kılma örneği aşağıda verilmiştir:
using System.Diagnostics;
using OpenTelemetry;
/// <summary>
/// Custom Processor that overrides the default behavior of treating response codes >= 400 as failed requests.
/// </summary>
internal class MyEnrichingProcessor : BaseProcessor<Activity>
{
public override void OnEnd(Activity activity)
{
if (activity.Kind == ActivityKind.Server)
{
int responseCode = GetResponseCode(activity);
if (responseCode >= 400 && responseCode < 500)
{
// If we set the Success property, the SDK won't change it
activity.SetStatus(ActivityStatusCode.Ok);
// Allow to filter these requests in the portal
activity.SetTag("Overridden400s", "true");
}
// else leave the SDK to set the Success property
}
}
private int GetResponseCode(Activity activity)
{
foreach (ref readonly var tag in activity.EnumerateTagObjects())
{
if (tag.Key == "http.response.status_code" && tag.Value is int value)
{
return value;
}
}
return 0;
}
}
Bu işlemciyi kullanmak için bir TracerProvider oluşturmanız ve işlemciyi AddAzureMonitorTraceExporter'den önce eklemeniz gerekir.
using OpenTelemetry.Trace;
public static void Main()
{
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("Company.Product.Name")
.AddProcessor(new MyEnrichingProcessor())
.AddAzureMonitorTraceExporter()
.Build();
}
OpenTelemetry kullanarak telemetriyi elle nasıl izlerim?
İzleme Verilerini El ile Gönderme
Application Insights'taki izler RequestTelemetry ve DependencyTelemetry olarak depolanır. OpenTelemetry'de izler, SpanActivity sınıfı kullanılarak modellenir.
OpenTelemetry .NET, .NET çalışma zamanının bir parçası olan ActivitySource ve Activity sınıflarını izleme için kullanır. .NET uygulaması izleme API'sini doğrudan çalışma zamanının kendisiyle tümleştirdiğinden bu yaklaşım ayırt edicidir.
System.Diagnostics.DiagnosticSource paketi, geliştiricilerin ActivitySource kullanarak Activity örnekleri oluşturmasını ve yönetmesini sağlar. Bu yöntem, .NET ekosisteminin yerleşik özelliklerini uygulayarak dış kitaplıklara bağlı kalmadan .NET uygulamalarına izleme eklemek için sorunsuz bir yol sağlar. Daha ayrıntılı bilgi için dağıtılmış izleme yönergelerine bakın.
El ile izlemeyi şu şekilde geçirelim:
Uyarı
Application Insights'ta, rol adı ve rol örneği telemetri başına ayarlanabilir. Ancak Azure Monitor Exporter ile telemetri aşamasında özelleştirme yapamayız. Rol adı ve rol örneği OpenTelemetry kaynağından ayıklanır ve tüm telemetriye uygulanır. Daha fazla bilgi için lütfen bu belgeyi okuyun: Bulut rolü adını ve bulut rolü örneğini ayarlayın.
Bağımlılık Telemetrisi
Application Insights DependencyTelemetry giden istekleri modellemek için kullanılır. Bunu OpenTelemetry'ye şu şekilde dönüştürebilirsiniz:
Application Insights Örneği:
DependencyTelemetry dep = new DependencyTelemetry
{
Name = "DependencyName",
Data = "https://www.example.com/",
Type = "Http",
Target = "www.example.com",
Duration = TimeSpan.FromSeconds(10),
ResultCode = "500",
Success = false
};
dep.Context.Cloud.RoleName = "MyRole";
dep.Context.Cloud.RoleInstance = "MyRoleInstance";
dep.Properties["customprop1"] = "custom value1";
client.TrackDependency(dep);
OpenTelemetry Örneği:
var activitySource = new ActivitySource("Company.Product.Name");
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Emit traces
using (var activity = activitySource.StartActivity("DependencyName", ActivityKind.Client))
{
activity?.SetTag("url.full", "https://www.example.com/");
activity?.SetTag("server.address", "www.example.com");
activity?.SetTag("http.request.method", "GET");
activity?.SetTag("http.response.status_code", "500");
activity?.SetTag("customprop1", "custom value1");
activity?.SetStatus(ActivityStatusCode.Error);
activity?.SetEndTime(activity.StartTimeUtc.AddSeconds(10));
}
İstek Telemetrisi
Application Insights RequestTelemetry gelen istekleri modeller. OpenTelemetry'ye şu şekilde geçirilmez:
Application Insights Örneği:
RequestTelemetry req = new RequestTelemetry
{
Name = "RequestName",
Url = new Uri("http://example.com"),
Duration = TimeSpan.FromSeconds(10),
ResponseCode = "200",
Success = true,
Properties = { ["customprop1"] = "custom value1" }
};
req.Context.Cloud.RoleName = "MyRole";
req.Context.Cloud.RoleInstance = "MyRoleInstance";
client.TrackRequest(req);
OpenTelemetry Örneği:
var activitySource = new ActivitySource("Company.Product.Name");
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Emit traces
using (var activity = activitySource.StartActivity("RequestName", ActivityKind.Server))
{
activity?.SetTag("url.scheme", "https");
activity?.SetTag("server.address", "www.example.com");
activity?.SetTag("url.path", "/");
activity?.SetTag("http.response.status_code", "200");
activity?.SetTag("customprop1", "custom value1");
activity?.SetStatus(ActivityStatusCode.Ok);
}
Özel İşlem İzleme
Application Insights'ta ve StartOperation yöntemlerini kullanarak StopOperation özel işlemleri izleyin. OpenTelemetry .NET'te ActivitySource ve Activity kullanarak bunu gerçekleştirin. Azure İzleyici Dışa Aktarıcı, ActivityKind.Server ile ActivityKind.Consumer yapılan işlemler için RequestTelemetry oluşturur.
ActivityKind.Client, ActivityKind.Producer ve ActivityKind.Internal için DependencyTelemetry oluşturur. Özel işlemleri izleme hakkında daha fazla bilgi için Bkz . Azure İzleyici belgeleri. .NET'te ve ActivitySource kullanma Activity hakkında daha fazla bilgi için bkz. .NET dağıtılmış izleme izleme izleme kılavuzları.
Özel işlemler için bir etkinliği başlatma ve durdurma örneği aşağıda verilmiştir:
using System.Diagnostics;
using OpenTelemetry;
var activitySource = new ActivitySource("Company.Product.Name");
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Start a new activity
using (var activity = activitySource.StartActivity("CustomOperation", ActivityKind.Server))
{
activity?.SetTag("customTag", "customValue");
// Perform your custom operation logic here
// No need to explicitly call Activity.Stop() because the using block automatically disposes the Activity object, which stops it.
}
Günlükleri Gönderme
Application Insights'taki günlükler TraceTelemetry ve ExceptionTelemetry olarak depolanır.
İzleme Telemetri
OpenTelemetry'de loglama, ILogger arabirimi aracılığıyla tümleştirilir. Geçiş şu şekilde yapılır TraceTelemetry:
Application Insights Örneği:
TraceTelemetry traceTelemetry = new TraceTelemetry
{
Message = "hello from tomato 2.99",
SeverityLevel = SeverityLevel.Warning,
};
traceTelemetry.Context.Cloud.RoleName = "MyRole";
traceTelemetry.Context.Cloud.RoleInstance = "MyRoleInstance";
client.TrackTrace(traceTelemetry);
OpenTelemetry Örneği:
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var loggerFactory = LoggerFactory.Create(builder => builder
.AddOpenTelemetry(logging =>
{
logging.SetResourceBuilder(resourceBuilder);
logging.AddAzureMonitorLogExporter();
}));
// Create a new instance `ILogger` from the above LoggerFactory
var logger = loggerFactory.CreateLogger<Program>();
// Emit log: This uses the logger instance to write a new log
logger.FoodPrice("tomato", 2.99);
internal static partial class LoggerExtensions
{
[LoggerMessage(LogLevel.Warning, "Hello from `{name}` `{price}`.")]
public static partial void FoodPrice(this ILogger logger, string name, double price);
}
ExceptionTelemetry
Application Insights, ExceptionTelemetry kullanarak özel durumları günlüğe kaydeder. OpenTelemetry'ye şu şekilde geçiş yapabilirsiniz:
Application Insights Örneği:
ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(new Exception("Test exception"))
{
SeverityLevel = SeverityLevel.Error
};
exceptionTelemetry.Context.Cloud.RoleName = "MyRole";
exceptionTelemetry.Context.Cloud.RoleInstance = "MyRoleInstance";
exceptionTelemetry.Properties["customprop1"] = "custom value1";
client.TrackException(exceptionTelemetry);
OpenTelemetry Örneği:
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var loggerFactory = LoggerFactory.Create(builder => builder
.AddOpenTelemetry(logging =>
{
logging.SetResourceBuilder(resourceBuilder);
logging.AddAzureMonitorLogExporter();
}));
// Create a new instance `ILogger` from the above LoggerFactory.
var logger = loggerFactory.CreateLogger<Program>();
try
{
// Simulate exception
throw new Exception("Test exception");
}
catch (Exception ex)
{
// Emit exception: This uses the logger instance to write a new exception
logger?.LogError(ex, "An error occurred");
}
Ölçüm Gönderme
Application Insights'taki ölçümler olarak MetricTelemetrydepolanır. OpenTelemetry'de, ölçümler Meter paketinden System.Diagnostics.DiagnosticSource olarak modellenmiştir.
Application Insights hem önceden toplama yapmayan (TrackMetric()) hem de önceden toplayan (GetMetric().TrackValue()) Ölçüm API'lerine sahiptir. OpenTelemetry'nin aksine, Application Insights'ta alet diye bir fikir yoktur. Application Insights tüm ölçüm senaryoları için aynı API'ye sahiptir.
OpenTelemetry ise kullanıcıların önce ölçümün gerçek semantiğine göre doğru ölçüm aracını seçmesini gerektirir. Örneğin, amaç bir şeyi saymaksa (alınan toplam sunucu isteği sayısı gibi), OpenTelemetry Sayacı kullanılmalıdır. Amaç çeşitli yüzdebirlik dilimleri hesaplamaksa (sunucu gecikme süresinin P99 değeri gibi), OpenTelemetry Histogram aracı kullanılmalıdır. Application Insights ile OpenTelemetry arasındaki bu temel fark nedeniyle, bunlar arasında doğrudan karşılaştırma yapılmaz.
Application Insights'ın aksine, OpenTelemetry ölçümleri zenginleştirmek veya filtrelemek için yerleşik mekanizmalar sağlamaz. Application Insights'ta, ölçümleri değiştirmek veya atmak için telemetri işlemcileri ve başlatıcılar kullanılabilir, ancak bu özellik OpenTelemetry'de kullanılamaz.
Ayrıca OpenTelemetry, Application Insights'ta bulunan işlevlere eşdeğer olmadığından ham ölçümlerin TrackMetric() doğrudan gönderilmesini desteklemez.
Application Insights'tan OpenTelemetry'ye geçiş, tüm Application Insights Ölçüm API'sinin kullanımını OpenTelemetry API'siyle değiştirmeyi içerir. Çeşitli OpenTelemetry Araçlarını ve bunların semantiğini anlamanızı gerektirir.
Tavsiye
Histogram, Application Insights GetMetric().TrackValue() API'sinin en çok yönlü ve en yakın eşdeğeridir. Aynı amaca ulaşmak için Application Insights Ölçüm API'lerini Histogram ile değiştirebilirsiniz.
Diğer Telemetri Türleri
Özel Etkinlikler
OpenTelemetry'de desteklenmez.
Application Insights Örneği:
TelemetryClient.TrackEvent()
Erişilebilirlik Telemetrisi
OpenTelemetry'de desteklenmez.
Application Insights Örneği:
TelemetryClient.TrackAvailability()
Sayfa Görüntüleme Telemetrisi
OpenTelemetry'de desteklenmez.
Application Insights Örneği:
TelemetryClient.TrackPageView()
Konsol ve çalışan hizmeti uygulamaları için canlı ölçümler alabilir miyim?
Azure Monitor OpenTelemetry Exporter'ı canlı ölçümleri içermeyen konsol ve çalışan hizmeti uygulamaları için öneririz.
.NET Application Insights SDK'larından OpenTelemetry'ye geçiş hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. .NET Application Insights SDK'larından Azure İzleyici OpenTelemetry'ye geçiş.
OpenTelemetry örneklemesi
Application Insights özel örnekleyici kuyruk tabanlı mı?
Application Insights özel örnekleyicisi, örnekleme kararlarını daha önce değil, yayılma alanı oluşturma işleminden sonra alır, bu nedenle geleneksel bir kafa tabanlı yaklaşımı izlemez. Bunun yerine, aralık oluşturmanın sonunda, aralık tamamlandıktan sonra ancak dışa aktarmadan önce örnekleme kararları uygular.
Bu davranış bazı yönlerden kuyruk tabanlı örneklemeye benzese de, örnekleyici karar vermeden önce aynı izden birden çok span toplamak için beklemez. Bunun yerine, izlemenin tamamlanmasını sağlamaya yardımcı olmak için İzleme Kimliğinin karmasını kullanır.
Bu yaklaşım izlemenin eksiksizliğini ve verimliliğini dengeler ve tam kuyruk tabanlı örneklemeyle ilişkili daha yüksek maliyeti önler.
Bir izleme işleminin tamamının sonucuna göre örnekleme kararları almak için (örneğin, izleme içindeki herhangi bir bölümün başarısız olup olmadığını belirlemek amacıyla), aşağı akıştaki Ajan veya Toplayıcı'da tam kuyruk bazlı örnekleme yapılması gerekir. Bu özellik şu anda desteklenmese de Geri Bildirim Merkezi aracılığıyla yeni bir özellik olarak isteyebilirsiniz.
Application Insights özel örnekleyici, OpenTelemetry baş tabanlı veya kuyruk tabanlı örnekleme ile nasıl karşılaştırılır?
| Örnekleme Yöntemi | Karar noktası | Güçlü Yönler | Zayıf |
|---|---|---|---|
| Baş merkezli | Yayılma başlamadan önce | Düşük gecikme süresi, en düşük ek yük | Hatalar da dahil olmak üzere istenen izlemeleri örnek alabilir |
| Kuyruk esaslı | Süre veya hacim eşiklerine göre aralıklar arabelleğe alındıktan sonra | Son derece seçici izleme örnekleme ölçütlerine izin verir | Daha yüksek maliyet ve ek işlem gecikmesi |
| App Insights özel örnekleyicisi | Aralık oluşturmanın sonu | İz takibi tamlığını verimlilikle dengeler | Canlı Ölçümler ve Klasik API uyumluluğu için gereklidir |
Bağımlılıkları, istekleri veya diğer telemetri türlerini farklı oranlarda örnekleyebilir miyim?
Hayır, örnekleyici bir izlemedeki tüm telemetri türlerine sabit bir oran uygular. İstekler, bağımlılıklar ve diğer yayılma alanları aynı örnekleme yüzdesini izler. Telemetri türü başına farklı oranlar uygulamak için OpenTelemetry span işlemcilerini veya (veri alma zamanı dönüşümleri)[opentelemetry-overview.md#telemetri-yönlendirme] kullanmayı göz önünde bulundurun.
Application Insights özel örnekleyicisi örnekleme kararlarını nasıl yayıyor?
Application Insights özel örnekleyicisi, varsayılan olarak W3C İzleme Bağlamı standardını kullanarak örnekleme kararları yayılımını sağlar. Bu standart, örnekleme kararlarının hizmetler arasında akmasını sağlar. Ancak örnekleyici, yayılma alanı oluşturmanın sonunda örnekleme kararları aldığından (aşağı akış hizmetlerine yapılan çağrıdan sonra) yayma eksik örnekleme bilgileri taşır. Bu sınırlama W3C İzleme Bağlamı belirtimine uygundur, ancak aşağı akış hizmetleri bu yayılan örnekleme kararını güvenilir bir şekilde kullanamaz.
Application Insights özel örnekleyicisi yukarı akış hizmetlerinden alınan örnekleme kararlarına uygun mu?
Hayır, yukarı akış hizmeti aynı örnekleme algoritmasını kullansa bile Application Insights özel örnekleyicisi her zaman bağımsız bir örnekleme kararı alır. W3C İz Kapsamı üst bilgilerini kullananlar da dahil olmak üzere yukarı akış hizmetlerinden alınan örnekleme kararları, aşağı akış hizmetinin kararını etkilemez. Ancak, izlemenin bütünlüğünü sağlamak için İzleme Kimliğinin hash değerine dayalı olarak örnekleme yapar. Tutarlılığı geliştirmek ve bozuk izleme olasılığını azaltmak için sistemdeki tüm bileşenleri aynı örnekleyici ve örnekleme hızını kullanacak şekilde yapılandırın.
Application Insights özel örnekleyicisi kullanılırken bile neden bazı izlemeler eksik görünüyor?
İzlemelerin eksik görünmesine neden olan çeşitli nedenler vardır:
- Dağıtılmış sistemdeki farklı düğümler, kararların eşgüdümlü olmadığı farklı örnekleme yaklaşımları kullanır. Örneğin, bir düğüm OpenTelemetry baş tabanlı örnekleme uygularken, başka bir düğüm de Azure İzleyici Özel Örnekleyicisi aracılığıyla örnekleme uygular.
- Her ikisi de aynı örnekleme yaklaşımını kullansalar bile farklı düğümler farklı örnekleme oranlarına ayarlanır.
- Hizmet tarafı işlem hattında filtreleme, örnekleme veya hız sınırlarını ayarlarsınız ve bu yapılandırma, iz tamlığını dikkate almadan iz dilimlerini rastgele örnekler.
Bir bileşen, örnekleme kararını yaymadan (W3C İzleme Bağlamı üst bilgileri aracılığıyla) seçici örnekleme uygularsa, aşağı akış hizmetleri izlemeyi bağımsız olarak örnekler, bu da atılan iz bölümlerine yol açabilir. Sonuç olarak, izleme işleminin bazı kısımları Application Insights'ta incelendiğinde her zaman mevcut olmayabilir.
Uygulama Insights özel örnekleyicisi, veri alım örneklemesi ile nasıl birlikte çalışır?
Alma örneklemesi, yalnızca hizmete ulaşan verileri örneklerden çıkarır; bu nedenle Application Insights özel örnekleyici kararlarına karşı koyamaz veya bunları geçersiz kılamaz. Her ikisi de etkinse, geçerli oran çarpan şeklinde belirlenir. Örneğin, %20'lik bir SDK oranı, %50'lik bir alım oranıyla birleştirildiğinde, verilerin kabaca %10'unun depolanmasıyla sonuçlanır. Microsoft, izlemelerin bütünlüğünü ve öngörülebilirliğini korumak için Azure İzleyici OpenTelemetry örnekleyicisi ile kaynakta örnekleme yapmayı ve yalnızca son çare olarak yutma örneklemesini kullanmanızı önerir.
OpenTelemetry örneklemesi hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . OpenTelemetry ile Azure İzleyici Application Insights'ta Örnekleme.
OpenTelemetry desteği ve geri bildirimi
OpenTelemetry nedir?
Microsoft Azure İzleyici neden OpenTelemetry'ye yatırım yapıyor?
Microsoft aşağıdaki nedenlerle OpenTelemetry'ye yatırım yapıyor:
- Satıcıdan bağımsızdır ve farklı dillerde tutarlı API'ler/SDK'lar sağlar.
- Zaman içinde OpenTelemetry'nin Azure İzleyici müşterilerinin desteklenen dillerimizin ötesindeki dillerde yazılmış uygulamaları gözlemleye olanak tanıyacağına inanıyoruz.
- Geniş bir araç kitaplıkları kümesi aracılığıyla toplayabileceğiniz veri türlerini genişletir.
- OpenTelemetry Yazılım Geliştirme Setleri (SDK'lar), öncülleri Application Insights SDK'larından daha yüksek ölçekte performans gösterme eğilimindedir.
- OpenTelemetry, Microsoft'un açık kaynak benimseme stratejisiyle uyumlu hale geliyor.
OpenTelemetry'nin durumu nedir?
Azure Monitor OpenTelemetry Dağıtımı nedir?
Bunu, Azure'da birinci sınıf bir deneyim için tüm OpenTelemetry bileşenlerini bir araya getiren ince bir sarmalayıcı olarak düşünebilirsiniz. Bu sarmalayıcı OpenTelemetry'de dağıtım olarak da adlandırılır.
Neden Azure Monitor OpenTelemetry Dağıtımını kullanmalıyım?
Azure Monitor OpenTelemetry Dağıtımını, topluluğun yerel OpenTelemetry'si yerine kullanmanın çeşitli avantajları vardır.
- Etkinleştirme çabasını azaltır
- Microsoft tarafından desteklenir
- Aşağıdakiler gibi Azure'a özgü özellikleri getirir:
- Klasik Application Insights SDK'larıyla uyumlu örnekleme
- Microsoft Entra kimlik doğrulaması
- Çevrimdışı Depolama ve Otomatik Yeniden Denemeler
- statsbeat
- Application Insights Standart Ölçümleri
- Çeşitli Azure ortamlarında, Bulut Rolü Adını ve Bulut Rolü Örneğini otomatik olarak doldurmak için kaynak meta verilerini algıla.
- Canlı Ölçümler
OpenTelemetry ruhuyla dağıtımı açık ve genişletilebilir olacak şekilde tasarladık. Örneğin şunları ekleyebilirsiniz:
- OpenTelemetry Protokolü (OTLP) verici ve aynı anda ikinci bir hedefe gönderme.
- Dağıtıma dahil olmayan diğer enstrümantasyon kitaplıkları
Distro bir OpenTelemetry dağıtımı sağladığından, Distro OpenTelemetry tarafından desteklenen her şeyi destekler. Örneğin, OpenTelemetry destekliyorsa daha fazla telemetri işlemcisi, dışarı aktarıcı veya izleme kitaplığı ekleyebilirsiniz.
Uyarı
Distro, örnekleyiciyi Application Insights için özel, sabit oranlı bir örnekleyiciye ayarlar. Bunu farklı bir örnekleyiciyle değiştirebilirsiniz, ancak bunu yapmak Distro'nun dahil edilen özelliklerinden bazılarını devre dışı bırakabilir. Desteklenen örnekleyici hakkında daha fazla bilgi için Azure İzleyici OpenTelemetry'yi Yapılandırma'nın Örneklemeyi Etkinleştirme bölümüne bakın.
Desteklenen bağımsız bir OpenTelemetry dışa aktarıcısı olmayan diller için Azure Monitor OpenTelemetry Distro, OpenTelemetry'yi Azure Monitor ile kullanmanın desteklenen tek yöntemidir. Desteklenen bağımsız OpenTelemetry sağlayıcısı sunan diller için, telemetri senaryonuza bağlı olarak Azure Monitor OpenTelemetry Dağıtımı veya uygun bağımsız OpenTelemetry sağlayıcısını kullanma seçeneğiniz vardır. Daha fazla bilgi için bkz. Azure İzleyici OpenTelemetry aktarımını ne zaman kullanmalıyım?.
Azure İzleyici OpenTelemetry Dağıtımı'nı nasıl test edebilirim?
.NET, Java, JavaScript (Node.js) ve Python için etkinleştirme belgelerimize göz atın.
OpenTelemetry mi yoksa Application Insights SDK'sını mı kullanmalıyım?
Yeni projeler için Azure İzleyici OpenTelemetry Distro'yu kullanmanızı öneririz.
OpenTelemetry, Application Insights SDK'larına göre aşağıdakiler gibi avantajlar da sağlar:
- Platformlar arasında daha iyi standartlaştırma
- Daha geniş bir izleme kitaplıkları ekosistemi
- Veri toplama ve işlemede daha fazla esneklik
- Satıcı tarafsızlığı iyileştirildi, ancak Azure İzleyici OpenTelemetry Distro şimdilik Azure için optimize edilmiş durumda.
OpenTelemetry sonunda Application Insights SDK'sının yerini alır ve özellik eşliğine yakındır. Ancak, bazı durumlarda, özellikleri izleme gereksinimlerinizle uyumluysa hala Application Insights SDK'sına ihtiyaç duyabilirsiniz.
Azure Monitor OpenTelemetry ihracatçısını ne zaman kullanmalıyım?
ASP.NET Core, Java, Node.js ve Python için Azure İzleyici OpenTelemetry Distro kullanmanızı öneririz. Başlamak için bir kod satırıdır.
Klasik ASP.NET, konsol uygulamaları, Windows Forms (WinForms) vb. gibi diğer tüm .NET senaryoları için .NET Azure İzleyici OpenTelemetry dışarı aktarmayı kullanmanızı öneririz: Azure.Monitor.OpenTelemetry.Exporter.
Gelişmiş yapılandırma gerektiren daha karmaşık Python telemetri senaryoları için Python Azure İzleyici OpenTelemetry Exporter'ı kullanmanızı öneririz.
Azure İzleyici OpenTelemetry Distro içindeki özelliklerin geçerli sürüm durumu nedir?
Aşağıdaki grafikte, her dil için OpenTelemetry özellik desteği gösterilmiştir.
| Özellik | .NET | Node.js | Piton | Java |
|---|---|---|---|---|
| Dağıtılmış izleme | ✅ | ✅ | ✅ | ✅ |
| Özel ölçümler | ✅ | ✅ | ✅ | ✅ |
| Standart ölçümler | ✅ | ✅ | ✅ | ✅ |
| Sabit oranlı örnekleme | ✅ | ✅ | ✅ | ✅ |
| Çevrimdışı depolama ve otomatik yeniden denemeler | ✅ | ✅ | ✅ | ✅ |
| Özel durum raporlama | ✅ | ✅ | ✅ | ✅ |
| Günlük koleksiyonu | ✅ | ⚠️ | ✅ | ✅ |
| Özel Olaylar | ⚠️ | ⚠️ | ⚠️ | ✅ |
| Microsoft Entra kimlik doğrulaması | ✅ | ✅ | ✅ | ✅ |
| Canlı ölçümler | ✅ | ✅ | ✅ | ✅ |
| Canlı Ölçüm Filtreleme | ✅ | ❌ | ❌ | ❌ |
| Kullanılabilirliği İzle API'sini kullanarak oluşturulan Kullanılabilirlik Testi Olayları | ❌ | ❌ | ❌ | ✅ |
| İstekleri, bağımlılıkları, günlükleri ve özel durumları anonim kullanıcı kimliğine ve yapay kaynağa göre filtreleme | ❌ | ✅ | ✅ | ✅ |
| Bağımlılıkları, günlükleri ve özel durumları işlem adına göre filtreleme | ❌ | ❌ | ❌ | ✅ |
| Hız sınırlı örnekleme | ✅ | ✅ | ✅ | ✅ |
| .NET Profil Oluşturucu | ⚠️ | ❌ | ❌ | ⚠️ |
| Anlık Hata Ayıklayıcı | ❌ | ❌ | ❌ | ❌ |
Anahtar
- ✅ Bu özellik resmi desteği olan tüm müşteriler tarafından kullanılabilir.
- ⚠️ Bu özellik genel önizleme olarak kullanılabilir. Bkz . Microsoft Azure önizlemeleri için ek kullanım koşulları.
- ❌ Bu özellik kullanılamaz veya geçerli değildir.
OpenTelemetry web tarayıcıları için kullanılabilir mi?
Evet, ancak bunu önermiyoruz ve Azure desteklemiyor. OpenTelemetry JavaScript, Node.js için yoğun olarak iyileştirilmiştir. Bunun yerine Application Insights JavaScript SDK'sını kullanmanızı öneririz.
OpenTelemetry SDK'sının web tarayıcılarında ne zaman kullanılabilir olmasını bekleyebiliriz?
OpenTelemetry web SDK'sının belirlenmiş bir kullanılabilirlik zaman çizelgesi yoktur. Application Insights JavaScript SDK'sına uygun bir alternatif olan tarayıcı SDK'sından muhtemelen birkaç yıl uzaktayız.
OpenTelemetry'yi bugün bir web tarayıcısında test edebilir miyim?
OpenTelemetry web deneme ortamı, OpenTelemetry'nin tarayıcıda çalışmasını sağlamak için tasarlanmış bir türevidir. Application Insights'a telemetri göndermek henüz mümkün değildir. SDK genel istemci olaylarını tanımlamaz.
Application Insights'ı AppDynamics, DataDog ve NewRelic gibi rakip aracılarla birlikte çalıştırmak destekleniyor mu?
Bu yöntem test etmeyi veya desteklemeyi planladığımız bir şey olmasa da, Dağıtımlarımız Azure İzleyici ile aynı anda bir OTLP uç noktasına dışarı aktarmanıza olanak tanır.
Üretim ortamlarında önizleme özelliklerini kullanabilir miyim?
Bunu önermiyoruz. Bkz . Microsoft Azure önizlemeleri için ek kullanım koşulları.
El ile otomatik izleme arasındaki fark nedir?
OpenTelemetry Toplayıcısı'nı kullanabilir miyim?
Microsoft henüz uygulama izleme için aracı tabanlı bir yaklaşımı resmi olarak desteklemese de bazı müşteriler openTelemetry Collector'ı aracı alternatifi olarak kullanır. Bu arada, açık kaynak topluluğu bazı müşteriler tarafından Azure Monitor Application Insights'a veri göndermek için kullanılan bir OpenTelemetry Collector Azure Monitor Exporter'a katkıda bulundu. Bu, Microsoft tarafından desteklenmez.
OpenCensus ile OpenTelemetry arasındaki fark nedir?
OpenCensus, OpenTelemetry'nin öncüsüdür. Microsoft, OpenTracing ve OpenCensus'un bir araya getirerek dünya için tek bir gözlemlenebilirlik standardı olan OpenTelemetry'yi oluşturmasına yardımcı oldu. Azure Monitor için mevcut, üretimde önerilen Python SDK'sı OpenCensus'a dayanır. Microsoft, OpenTelemetry temelinde Azure İzleyici oluşturmayı taahhüt etmiştir.
Grafana'da neden "Durum 500. İzleme görselleştiricisini kullanarak izleme olaylarını görselleştiremiyor musunuz?"
OpenTelemetry izlemeleri yerine ham metin günlüklerini görselleştirmeye çalışıyor olabilirsiniz.
Application Insights'ta 'traces' tablosu tanılama amacıyla ham metin günlüklerini depolar. Kullanıcı istekleri, diğer olaylar ve özel durum raporlarıyla ilişkili izlemeleri tanımlamaya ve ilişkilendirmeye yardımcı olurlar. Ancak 'İzlemeler' tablosu Grafana gibi görselleştirme araçlarında uçtan uca işlem görünümüne (şelale grafik) doğrudan katkıda bulunmaz.
Buluta özel uygulamaların giderek benimsenmesiyle birlikte telemetri koleksiyonu ve terminolojisinde bir gelişme yaşanıyor. OpenTelemetry, telemetri verilerini toplamak ve işaretlemek için bir standart haline geldi. Bu bağlamda 'İzlemeler' terimi yeni bir anlam kazandı. OpenTelemetry'deki 'traces', ham günlükler yerine, tek tek iş birimlerini temsil eden span'ler içeren daha zengin, yapılandırılmış bir telemetri biçimini ifade eder. Bu yayılma alanları, buluta özel uygulamaların daha iyi izlenmesini ve tanılamasını sağlayarak ayrıntılı işlem görünümleri oluşturmak için çok önemlidir.
Blazor Uygulamalarını nasıl araçlandırmam gerekir?
Blazor uygulamasını işaretlemek için önce barındırma modelini belirleyin. Blazor Server tam OpenTelemetry tabanlı araçları destekler. Blazor WebAssembly tarayıcıda çalışır ve JavaScript aracılığıyla sınırlı araçlandırma desteği sağlar.
OpenTelemetry desteği ve geri bildirimi hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . OpenTelemetry Desteği ve Application Insights için Geri Bildirim.
Genel bakış panosu
30 günden fazla veri görüntüleyebilir miyim?
Hayır, bir panoda 30 günlük veri görüntüleme sınırı vardır.
Panoda "kaynak bulunamadı" hatası görüyorum.
Application Insights örneğinizi taşıdığınızda veya yeniden adlandırdığınızda "kaynak bulunamadı" hatası oluşabilir.
Bu davranışa geçici bir çözüm bulmak için varsayılan panoyu silin ve yenisini yeniden oluşturmak için Uygulama Panosu'nu yeniden seçin.
Genel Bakış panosu hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights Genel Bakış panosu.
Telemetri kanalları
Application Insights kanalı telemetri teslimini garanti eder mi? Aksi takdirde telemetrinin kaybedilebileceği senaryolar nelerdir?
Kısa yanıt, yerleşik kanalların hiçbirinin arka uca telemetri teslimi için işlem türü garantisi sunmadığını ifade eder.
ServerTelemetryChannel güvenilir teslim ile InMemoryChannel karşılaştırıldığında daha gelişmiştir, ancak telemetri göndermek için yalnızca en iyi çabayı gösterir. Telemetri, aşağıdaki yaygın senaryolar da dahil olmak üzere çeşitli durumlarda yine de kaybolabilir:
- Uygulama kilitlendiğinde bellekteki öğeler kaybolur.
- Telemetri, ağ sorunlarının uzun dönemlerinde kaybolur. Telemetri, ağ kesintileri sırasında veya Application Insights arka ucuyla ilgili sorunlar oluştuğunda yerel diske depolanır. Ancak, 48 saatten eski öğeler atılır.
- Windows'ta telemetriyi depolamak için varsayılan disk konumları %LOCALAPPDATA% veya %TEMP%'dir. Bu konumlar genellikle makine için yereldir. Uygulama fiziksel olarak bir konumdan diğerine geçerse, özgün konumda depolanan tüm telemetriler kaybolur.
- Windows üzerinde Azure Web Apps'te varsayılan disk depolama konumu D:\local\LocalAppData'dır. Bu konum kalıcı değildir. Uygulama yeniden başlatmalarında, ölçek genişletmelerde ve bu tür diğer işlemlerde silinir ve bu da orada depolanan telemetri verilerinin kaybolmasına neden olur. Varsayılanı geçersiz kılabilir ve D:\home gibi kalıcı bir konuma depolama alanı belirtebilirsiniz. Ancak, bu kalıcı konumlar uzak depolama tarafından sunulur ve bu nedenle yavaş olabilir.
Daha az olası olsa da, kanalın yinelenen telemetri öğelerine neden olması da mümkündür. Bu davranış, ağ hatası veya zaman aşımı nedeniyle yeniden denemeler ServerTelemetryChannel yapıldığında, telemetri arka uca teslim edildiğinde, ancak ağ sorunları nedeniyle yanıt kaybolduğunda veya zaman aşımı oluştuğunda oluşur.
ServerTelemetryChannel, Windows dışındaki sistemlerde çalışıyor mu?
Paketin ve ad alanının adı "WindowsServer" içerse de, bu kanal aşağıdaki özel durum dışında Windows dışındaki sistemlerde desteklenir. Windows dışındaki sistemlerde kanal varsayılan olarak yerel bir depolama klasörü oluşturmaz. Yerel bir depolama klasörü oluşturmanız ve kanalı bunu kullanacak şekilde yapılandırmanız gerekir. Yerel depolama yapılandırıldıktan sonra kanal tüm sistemlerde aynı şekilde çalışır.
Uyarı
2.15.0-beta3 ve üzeri sürümle birlikte yerel depolama artık Linux, Mac ve Windows için otomatik olarak oluşturulur. Windows dışı sistemler için SDK, aşağıdaki mantığı temel alan otomatik olarak bir yerel depolama klasörü oluşturur:
-
${TMPDIR}: Ortam değişkeni ayarlanırsa${TMPDIR}, bu konum kullanılır. -
/var/tmp: Önceki konum yoksa,/var/tmpdeneriz. -
/tmp: Önceki her iki konum da mevcut değilse,tmp'ı deneriz. - Bu konumlardan hiçbiri yoksa yerel depolama oluşturulmaz ve el ile yapılandırma yine de gereklidir. Uygulama ayrıntılarının tamamı için bu GitHub deposuna bakın.
SDK geçici yerel depolama alanı oluşturuyor mu? Veriler depolamada şifreleniyor mu?
SDK, ağ sorunları veya baskılama sırasında telemetri öğelerini yerel depolamada depolar. Bu veriler yerel olarak şifrelenmez.
Windows sistemleri için SDK, %TEMP% veya %LOCALAPPDATA% dizininde otomatik olarak geçici bir yerel klasör oluşturur ve erişimi yalnızca yöneticilere ve geçerli kullanıcıya kısıtlar.
Windows dışındaki sistemler için SDK tarafından otomatik olarak yerel depolama oluşturulmaz, bu nedenle varsayılan olarak yerel olarak hiçbir veri depolanmaz.
Uyarı
2.15.0-beta3 ve üzeri sürümle birlikte yerel depolama artık Linux, Mac ve Windows için otomatik olarak oluşturulur.
Bir depolama dizini oluşturabilir ve kanalı bunu kullanacak şekilde yapılandırabilirsiniz. Bu durumda, dizinin güvenliğini sağlamak sizin sorumluluğunuzdadır. Veri koruma ve gizlilik hakkında daha fazla bilgi edinin.
Telemetri kanalları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz. Application Insights'ta telemetri kanalları.
Search
Ne kadar veri tutulur?
Sunucu isteklerimde POST verilerini nasıl görebilirim?
POST verilerini otomatik olarak günlüğe kaydetmeyiz, ancak TrackTrace'i veya çağrıları günlüğe kaydetmeyi kullanabilirsiniz. POST verilerini ileti parametresine yerleştirin. İletiyi, özelliklere göre filtreleyebileceğiniz gibi filtreleyemezsiniz, ancak boyut sınırı daha uzundur.
Azure İşlevi aramam neden sonuç döndürmüyor?
Azure İşlevleri URL sorgu dizelerini günlüğe kaydetmez.
Arama hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Arama ve Tanılama.
İşlem Tanılama
Neden grafikte tek bir bileşen görüyorum ve diğer bileşenler herhangi bir ayrıntı olmadan yalnızca dış bağımlılıklar olarak gösterilsin?
Olası nedenler:
- Diğer bileşenler Application Insights ile izleniyor mu?
- En son kararlı Application Insights SDK'sını kullanıyorlar mı?
- Bu bileşenler ayrı Application Insights kaynaklarıysa, erişiminiz olduğunu doğrulayın. Erişiminiz varsa ve bileşenler en son Application Insights SDK'larıyla izleniyorsa sağ üst köşedeki geri bildirim kanalı aracılığıyla bize bildirin.
Bağımlılıklar için yinelenen satırlar görüyorum. Bu davranış bekleniyor mu?
Şu anda giden bağımlılık çağrısını gelen istekten ayrı olarak gösteriyoruz. Genellikle, iki çağrı, ağ gidiş dönüş süresi nedeniyle yalnızca süre değerinin farklı olmasıyla birbirine benzer görünür. Baştaki simge ve süre çubuklarının benzersiz stili, aralarında ayrımlara yardımcı olur. Bu veri sunumu kafa karıştırıcı mı? Bize geri bildiriminizi gönderin!
Farklı bileşen örnekleri arasında saat dengesizliklerine ne dersin?
Zaman çizelgeleri, işlem grafiğindeki saat dengesizliklerine göre ayarlanır. Ayrıntılar bölmesinde veya Log Analytics'i kullanarak tam zaman damgalarını görebilirsiniz.
Yeni deneyimde ilgili öğe sorgularının çoğu neden eksik?
Bu davranış tasarım gereğidir. Tüm bileşenlerde ilgili tüm öğeler, üst ve alt bölümlerde sol tarafta zaten kullanılabilir durumdadır. Yeni deneyimde, sol tarafın kapsamadığı iki ilgili öğe vardır: bu olaydan beş dakika öncesine ve sonrasına ve kullanıcı zaman çizelgesine ait tüm telemetri.
Application Insights JavaScript SDK'sını kullanırken işlem başına daha az olay görmenin bir yolu var mı?
İşlem tanılama deneyimi, tüm telemetriyi bir İşlem Kimliğini paylaşan tek bir işlemde gösterir. Varsayılan olarak, JavaScript için Application Insights SDK'sı her benzersiz sayfa görünümü için yeni bir işlem oluşturur. Tek sayfalı bir uygulamada (SPA) yalnızca bir sayfa görünümü olayı oluşturulur ve oluşturulan tüm telemetri için tek bir İşlem Kimliği kullanılır. Sonuç olarak, birçok olay aynı işlemle ilişkilendirilebilir.
Bu senaryolarda, SPA'nızda gezinti için otomatik olarak yeni işlemler oluşturmak için Otomatik Yol İzleme'yi kullanabilirsiniz. URL yolu her güncelleştirildiğinde (mantıksal sayfa görünümü gerçekleşir) sayfa görünümünün oluşturulması için enableAutoRouteTracking'i açmanız gerekir. İşlem Kimliğini el ile yenilemek istiyorsanız çağrısı yapın appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId(). Bir PageView olayının el ile tetiklenmesi de İşlem Kimliğini sıfırlar.
İşlem ayrıntısı süreleri neden üst istek süresine eklenmiyor?
Gantt grafiğinde açıklanmamış zaman, izlenen bağımlılık kapsamında olmayan süredir. Dış çağrılar otomatik veya manuel olarak donatılmadığı için bu sorun oluşabilir. Bunun nedeni, duruma sebep olanın dış çağrı değil, süreç içinde geçen zaman olması olabilir.
Tüm çağrılar izlendiğinde, harcanan sürenin olası kök nedeni işlemin kendisidir. İşlemi tanılamak için kullanışlı bir araç .NET Profiler'dır.
Azure portalında Application Insights'ta gezinirken "Veri alınırken hata oluştu" iletisini görürsem ne olur?
Bu hata, tarayıcının gerekli bir API'ye çağrı yapamadığını veya API'nin bir hata yanıtı döndürdüğünü gösterir. Davranışı gidermek için bir tarayıcı InPrivate penceresi açın ve çalışan tarayıcı uzantılarını devre dışı bırakın, ardından portal davranışını yine de yeniden oluşturup oluşturamadığını belirleyin. Portal hatası oluşmaya devam ederse, diğer tarayıcılarla veya diğer makinelerle test etmeyi deneyin, API çağrılarının başarısız olduğu istemci makinesinden DNS veya ağ ile ilgili diğer sorunları araştırın. Portal hatası devam ederse ve daha fazla araştırma gerekiyorsa, beklenmeyen portal davranışını yeniden oluştururken tarayıcı ağ izlemesini toplayın ve ardından Azure portalından bir destek talebi açın.
İşlem Tanılama hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Application Insights ile hataları, performansı ve işlemleri araştırma.
Kullanım analizi
İlk olay, olayın bir oturumda ilk kez gösterildiği zamanı mı yoksa bir oturumda göründüğü zamanı mı temsil eder?
Görselleştirmedeki ilk olay yalnızca kullanıcının bir oturum sırasında bu sayfa görünümünü veya özel olayı ilk gönderdiği zamanı temsil eder. Kullanıcılar bir oturumda başlangıç olayını birden çok kez gönderebiliyorsa, 1. Adım sütunu, tüm örnekleri içermez; yalnızca kullanıcıların ilk başlangıç olayının ardından nasıl davrandığını gösterir.
Görselleştirmemdeki bazı düğümlerin düzeyi çok yüksek. Daha ayrıntılı düğümleri nasıl alabilirim?
Düzenle menüsündeki Ayırma seçeneklerini kullanın:
Etkinlik menüsünden ayrıntılı incelemek istediğiniz etkinliği seçin.
Boyut menüsünde bir boyut seçin. Örneğin, Düğme Tıklatıldı adlı bir olayınız varsa, Düğme Adı adlı özel bir özelliği deneyin.
Belirli bir ülkeden/bölgeden bir kullanıcı kohort tanımladım. Kullanıcılar aracındaki bu kohortla ilgili bir filtreyi o ülke/bölgeyle karşılaştırdığımda neden farklı sonuçlar görüyorum?
Kohortlar ve filtreler farklıdır. Birleşik Krallık'tan bir kullanıcı kohortunuza (önceki örnekte olduğu gibi tanımlanır) sahip olduğunuzu ve sonuçlarını filtreyi Country or region = United Kingdomayarlamakla karşılaştırdığınız varsayın:
Kohort sürümü, geçerli zaman aralığında Birleşik Krallık'tan bir veya daha fazla etkinlik gönderen kullanıcıların tüm olaylarını gösterir. Ülkeye veya bölgeye göre bölerseniz, büyük olasılıkla birçok ülke ve bölge görürsünüz.
Filtreler sürümü yalnızca Birleşik Krallık'tan gelen olayları gösterir. Ülkeye veya bölgeye göre bölerseniz yalnızca Birleşik Krallık'ı görürsünüz.
Verileri farklı zaman dilimlerinde (günlük, aylık veya haftalık) nasıl görüntüleyebilirim?
Tahılı değiştirmek için Tarih Tanesi filtresini seçebilirsiniz. Filtre tüm boyut sekmelerinde kullanılabilir.
Uygulamamdan KALP çalışma kitaplarında bulunmayan içgörülere erişmek Nasıl yaparım??
Görseller tüm sorularınızı yanıtlamıyorsa HEART çalışma kitabını besleyen verileri inceleyebilirsiniz. Bu görevi yapmak için Application Insights'taki İzleme bölümünün altında Günlükler'i seçin ve tabloyu sorgulayın customEvents . Click Analytics özniteliklerinden bazıları alanın içinde customDimensions yer alır.
Burada örnek bir sorgu gösterilmiştir:
customEvents
| where isnotnull(customDimensions.actionType)
| extend parentid=tostring(customDimensions.parenId),
pagename=tostring(customDimensions.pageName),
actiontype=tostring(customDimensions.actionType)
| project actiontype,parentid,pagename,
user_AuthenticatedId,user_Id,session_Id,itemType,timestamp
Azure İzleyici'deki Günlükler hakkında daha fazla bilgi edinmek için bkz . Azure İzleyici Günlüklerine genel bakış.
Çalışma kitabındaki görselleri düzenleyebilir miyim?
Evet. Çalışma kitabı şablonlarını düzenlemeyi öğrenmek için bkz. Azure Çalışma Kitapları şablonları.
Kullanım analizi hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Application Insights ile kullanım analizi.
Çalışan Hizmeti uygulamaları
Hangi paketi kullanmalıyım?
| .NET Core uygulama senaryosu | Paket |
|---|---|
| HostedServices'siz | WorkerService |
| HostedServices ile | AspNetCore (WorkerService değil) |
| HostedServices ile yalnızca HostedServices'i izleme | WorkerService (nadir senaryo) |
AspNetCore paketini kullanan bir .NET Core uygulaması içindeki HostedServices uygulamasına TelemetryClient eklenmiş olabilir mi?
Evet, yapılandırma web uygulamasının geri kalanıyla paylaşılır.
Otomatik olarak toplanmayan telemetri verilerini nasıl izleyebilirim?
Oluşturucu enjeksiyonu kullanarak TelemetryClient örneğini alın ve üzerinde gerekli TrackXXX() yöntemini çağırın. Yeni TelemetryClient örnekler oluşturmanızı önermiyoruz.
TelemetryClient tekil bir örneği, DependencyInjection'yi telemetri kalanıyla paylaşan TelemetryConfiguration kapsayıcısında zaten kayıtlıdır. Yeni TelemetryClient örnek oluşturma yalnızca telemetrinin geri kalanından ayrı bir yapılandırma gerekiyorsa önerilir.
Visual Studio IDE'yi kullanarak Application Insights'ı bir Çalışan Hizmeti projesine ekleyebilir miyim?
Visual Studio IDE ekleme şu anda yalnızca ASP.NET/ASP.NET Core uygulamaları için desteklenmektedir. Bu belge, Visual Studio Çalışan Hizmeti uygulamalarını ekleme desteği gönderdiğinizde güncelleştirilir.
Azure Monitor Application Insights Aracısı (eski adıyla Durum İzleyicisi v2) gibi araçları kullanarak Application Insights izlemeyi etkinleştirebilir miyim?
Hayır. Azure İzleyici Application Insights Aracısı şu anda yalnızca .NET'i desteklemektedir.
Uygulamamı Linux'ta çalıştırırsam tüm özellikler destekleniyor mu?
Evet. Bu SDK için özellik desteği, aşağıdaki özel durumlar dışında tüm platformlarda aynıdır:
Performans sayaçları, canlı ölçümlerde gösterilen İşlem CPU/Bellek dışında yalnızca Windows'ta desteklenir.
Varsayılan olarak etkin olsa
ServerTelemetryChannelbile, uygulama Linux veya macOS'ta çalışıyorsa, ağ sorunları varsa kanal telemetriyi geçici olarak tutmak için otomatik olarak yerel bir depolama klasörü oluşturmaz. Bu sınırlama nedeniyle geçici ağ veya sunucu sorunları olduğunda telemetri kaybolur. Bu sorunu geçici olarak çözmek için kanal için yerel bir klasör yapılandırın:using Microsoft.ApplicationInsights.Channel; using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel; public void ConfigureServices(IServiceCollection services) { // The following will configure the channel to use the given folder to temporarily // store telemetry items during network or Application Insights server issues. // User should ensure that the given folder already exists // and that the application has read/write permissions. services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"}); services.AddApplicationInsightsTelemetryWorkerService(); }
Çalışan Hizmeti uygulamaları hakkında nereden daha fazla bilgi edinebilirim?
Daha fazla bilgi için bkz . Çalışan Hizmeti uygulamaları (HTTP olmayan uygulamalar) için Application Insights.