Application Insights Anlık Görüntü Hata Ayıklayıcısını etkinleştirme veya anlık görüntüleri görüntüleme sorunlarını giderme
Uygulamanız için Application Insights Snapshot Debugger'ı etkinleştirdiyseniz ancak özel durumlar için anlık görüntüler görmüyorsanız, sorun gidermek için bu yönergeleri kullanabilirsiniz.
Anlık görüntülerin oluşturulmamalarının birçok farklı nedeni olabilir. Olası yaygın nedenlerden bazılarını belirlemek için anlık görüntü sistem durumu denetimini çalıştırarak başlayabilirsiniz.
Desteklenmeyen senaryolar
Anlık Görüntü Toplayıcı'nın desteklenmediği senaryoları aşağıda bulabilirsiniz:
Senaryo | Yan etkiler | Öneri |
---|---|---|
Uygulamanızda doğrudan (.csproj) Anlık Görüntü Toplayıcı SDK'sını kullandığınızda ve gelişmiş "Birlikte Çalışma" seçeneğini etkinleştirdiğinizde. | Yerel Application Insights SDK'sı (Anlık Görüntü Toplayıcı telemetrisi dahil) kaybolur; bu nedenle, kullanılabilir anlık görüntü olmayacaktır. Uygulamanız ile başlangıçta kilitlenebilir System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor Application Insights özelliği "Birlikte Çalışma" hakkında daha fazla bilgi için bkz. Azure App Service ve ASP.NET Core için Uygulama izleme. |
"Birlikte Çalışma" gelişmiş seçeneğini kullanıyorsanız kodsuz Anlık Görüntü Toplayıcı ekleme özelliğini kullanın (Azure portal UX aracılığıyla etkinleştirilir). |
Uygun Snapshot Debugger uç noktasını kullandığınızdan emin olun
Şu anda uç nokta değişiklikleri gerektiren tek bölgeler Azure Kamu ve Azure Çin'dir.
Application Insights SDK'sını kullanan App Service ve uygulamalar için, aşağıda tanımlandığı gibi Snapshot Debugger için desteklenen geçersiz kılmaları kullanarak bağlantı dizesi güncelleştirmeniz gerekir:
Bağlantı dizesi özelliği | ABD Kamu Bulutu | Çin Bulutu |
---|---|---|
SnapshotEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Diğer bağlantı geçersiz kılmaları hakkında daha fazla bilgi için Application Insights belgelerine bakın.
İşlev Uygulaması için aşağıdaki desteklenen geçersiz kılmaları kullanarak öğesini host.json
güncelleştirmeniz gerekir:
Özellik | ABD Kamu Bulutu | Çin Bulutu |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
ABD Kamu Bulutu aracı uç noktası ile güncelleştirilmiş bir örnek host.json
aşağıda verilmiştir:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Anlık görüntü sistem durumu denetimini kullanma
Bazı yaygın sorunlar, Hata AyıklamaYı Aç Anlık Görüntüsünün görünmemesiyle sonuçlanır. Örneğin, güncel olmayan bir Anlık Görüntü Toplayıcı kullanılır; günlük karşıya yükleme sınırına ulaşılır; veya anlık görüntünün yüklenmesi uzun sürüyor olabilir. Sık karşılaşılan sorunları gidermek için Anlık Görüntü Sistem Durumu Denetimi'ni kullanın.
Uçtan uca izleme görünümünün özel durum bölmesinde sizi Anlık Görüntü Durumu Denetimi'ne götüren bir bağlantı vardır.
Etkileşimli, sohbet benzeri arabirim, sık karşılaşılan sorunları arar ve bunları düzeltmeniz için size yol gösterir.
Bu işlem sorunu çözmezse aşağıdaki el ile sorun giderme adımlarına bakın.
İzleme anahtarını doğrulama
Yayımlanan uygulamanızda doğru izleme anahtarını kullandığınızdan emin olun. İzleme anahtarı genellikle ApplicationInsights.config dosyasından okunur. Değerin portalda gördüğünüz Application Insights kaynağının izleme anahtarıyla aynı olduğunu doğrulayın.
31 Mart 2025'te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirmeler veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizelerine geçiş.
TLS/SSL istemci ayarlarını denetleme (ASP.NET)
sanal makinede Azure App Service veya IIS'de barındırılan bir ASP.NET uygulamanız varsa, uygulamanız eksik bir SSL güvenlik protokolü nedeniyle Snapshot Debugger hizmetine bağlanamıyor olabilir.
Snapshot Debugger uç noktası TLS sürüm 1.2 gerektirir. SSL güvenlik protokolleri kümesi, bölümündeki web.config
değerin httpRuntime targetFramework
system.web
etkinleştirdiği tuhaflıklardan biridir.
httpRuntime targetFramework
değeri 4.5.2 veya daha düşükse TLS 1.2 varsayılan olarak dahil değildir.
Not
httpRuntime targetFramework
Değeri, uygulamanızı oluştururken kullanılan hedef çerçeveden bağımsızdır.
Ayarı denetlemek için web.config dosyanızı açın ve system.web bölümünü bulun. için httpRuntime
değerinin targetFramework
4.6 veya üzeri olarak ayarlandığından emin olun.
<system.web>
...
<httpRuntime targetFramework="4.7.2" />
...
</system.web>
Not
Değerin httpRuntime targetFramework
değiştirilmesi, uygulamanıza uygulanan çalışma zamanı ilginçliklerini değiştirir ve diğer ince davranış değişikliklerine neden olabilir. Bu değişikliği yaptıktan sonra uygulamanızı kapsamlı bir şekilde test etmeye özen gösterin. Uyumluluk değişikliklerinin tam listesi için bkz. Değişiklikleri yeniden hedefleme.
Not
targetFramework
4.7 veya sonraki bir sürümse, Windows kullanılabilir protokolleri belirler. Azure App Service'da TLS 1.2 kullanılabilir. Ancak kendi sanal makinenizi kullanıyorsanız işletim sisteminde TLS 1.2'yi etkinleştirmeniz gerekebilir.
.NET Core'un önizleme sürümleri
.NET Core'un önizleme sürümünü kullanıyorsanız veya uygulamanız application Insights SDK'sını bağımlı bir derleme aracılığıyla doğrudan veya dolaylı olarak başvurursa, Diğer ortamlar için Snapshot Debugger'ı etkinleştirme yönergelerini izleyin.
Tanılama Hizmetleri site uzantısının Durum Sayfasını denetleyin
Portaldaki Application Insights bölmesi aracılığıyla Snapshot Debugger etkinleştirildiyse, Tanılama Hizmetleri site uzantısı tarafından etkinleştirilmiştir.
Not
Application Insights Snapshot Debugger'ın kodsuz yüklemesi .NET Core destek ilkesini izler. Desteklenen çalışma zamanları hakkında daha fazla bilgi için bkz. .NET Core Destek İlkesi.
Bu uzantının Durum Sayfasını denetlemek için aşağıdaki URL'ye gidebilirsiniz: https://{site-name}.scm.azurewebsites.net/DiagnosticServices
Not
Durum Sayfası bağlantısının etki alanı buluta bağlı olarak değişir. Bu etki alanı, App Service için Kudu yönetim sitesiyle aynı olacaktır.
Bu Durum Sayfası, Profil Oluşturucu ve Anlık Görüntü Toplayıcı aracılarının yükleme durumunu gösterir. Beklenmeyen bir hata oluştuysa görüntülenir ve nasıl düzeltileceğini gösterir.
Bu Durum Sayfasının temel URL'sini almak için App Service için Kudu yönetim sitesini kullanabilirsiniz:
- App Service uygulamanızı Azure portal açın.
- Gelişmiş Araçlar'ı seçin veya Kudu'yu arayın.
- Git'i seçin.
- Kudu yönetim sitesine girdikten sonra URL'ye ekleyin ve Enter tuşuna
/DiagnosticServices
basın. Bu şekilde sona erecek:https://<kudu-url>/DiagnosticServices
.
NuGet paketinin en son sürümüne yükseltme
Snapshot Debugger'ın nasıl etkinleştirildiğine bağlı olarak aşağıdaki seçeneklere bakın:
Snapshot Debugger portaldaki Application Insights bölmesi aracılığıyla etkinleştirildiyse, uygulamanız zaten en son NuGet paketini çalıştırıyor olmalıdır.
Snapshot Debugger , Microsoft.ApplicationInsights.SnapshotCollector NuGet paketini ekleyerek etkinleştirildiyse, en son sürümünü kullandığınızdan emin olmak için Visual Studio'nun NuGet Paket Yöneticisi'ni
Microsoft.ApplicationInsights.SnapshotCollector
kullanın.
En son güncelleştirmeler ve hata düzeltmeleri için sürüm notlarını inceleyin.
Karşıya yükleyen günlüklerini denetleme
Anlık görüntü oluşturulduktan sonra diskte bir minidump dosyası (.dmp) oluşturulur. Ayrı bir karşıya yükleme işlemi bu minidump dosyasını oluşturur ve ilişkili PDB'lerle birlikte Application Insights Snapshot Debugger depolama alanına yükler. Minidump başarıyla karşıya yüklendikten sonra diskten silinir. Karşıya yükleme işleminin günlük dosyaları diskte tutulur. App Service bir ortamda bu günlükleri içinde D:\Home\LogFiles
bulabilirsiniz. Bu günlük dosyalarını bulmak için App Service için Kudu yönetim sitesini kullanın.
- App Service uygulamanızı Azure portal açın.
- Gelişmiş Araçlar'ı seçin veya Kudu'yu arayın.
- Git'i seçin.
- Hata ayıklama konsolu açılan listesinde CMD'yi seçin.
- LogFiles'ı seçin.
veya SnapshotUploader_
ile Uploader_
başlayan bir ada ve bir uzantıya sahip en az bir .log
dosya görmeniz gerekir. Günlük dosyalarını indirmek veya tarayıcıda açmak için uygun simgeyi seçin.
Dosya adı, App Service örneğini tanımlayan benzersiz bir sonek içerir. App Service örneğiniz birden fazla makinede barındırılıyorsa, her makine için ayrı günlük dosyaları vardır. Yükleyici yeni bir minidump dosyası algıladığında günlük dosyasına kaydedilir. Başarılı bir anlık görüntü ve karşıya yükleme örneği aşağıda verilmiştir:
SnapshotUploader.exe Information: 0 : Received Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Creating minidump from Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Dump placeholder file created: 139e411a23934dc0b9ea08a626db16c5.dm_
DateTime=2018-03-09T01:42:41.8728496Z
SnapshotUploader.exe Information: 0 : Dump available 139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:45.7525022Z
SnapshotUploader.exe Information: 0 : Successfully wrote minidump to D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Uploading D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp, 214.42 MB (uncompressed)
DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Upload successful. Compressed size 86.56 MB
DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Extracting PDB info from D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp.
DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Matched 2 PDB(s) with local files.
DateTime=2018-03-09T01:42:59.6809606Z
SnapshotUploader.exe Information: 0 : Stamp does not want any of our matched PDBs.
DateTime=2018-03-09T01:42:59.8059929Z
SnapshotUploader.exe Information: 0 : Deleted D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:59.8530649Z
Not
Yukarıdaki örnek, NuGet paketinin 1.2.0 sürümünden alınmıştı Microsoft.ApplicationInsights.SnapshotCollector
. Önceki sürümlerde karşıya yükleme işlemi çağrılır MinidumpUploader.exe
ve günlük daha az ayrıntılıdır.
Önceki örnekte izleme anahtarı şeklindedir c12a605e73c44346a984e00000000000
. Bu değer uygulamanızın izleme anahtarıyla eşleşmelidir.
Minidump, kimliğine 139e411a23934dc0b9ea08a626db16c5
sahip bir anlık görüntüyle ilişkilendirilir. Bu kimliği daha sonra Application Insights Analytics'te ilişkili özel durum kaydını bulmak için kullanabilirsiniz.
Karşıya yükleyen, yaklaşık 15 dakikada bir yeni PDB'leri tarar. İşte bir örnek:
SnapshotUploader.exe Information: 0 : PDB rescan requested.
DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Scanning D:\home\site\wwwroot for local PDBs.
DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Local PDB scan complete. Found 2 PDB(s).
DateTime=2018-03-09T01:47:19.4614027Z
SnapshotUploader.exe Information: 0 : Deleted PDB scan marker : D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\6368.pdbscan
DateTime=2018-03-09T01:47:19.4614027Z
App Service'da barındırilmeyen uygulamalar için, yükleyici günlükleri minidumps ile aynı klasördedir: %TEMP%\Dumps\<ikey>
(<ikey>
burada izleme anahtarınızdır).
Cloud Services sorunlarını giderme
Cloud Services'da, varsayılan geçici klasör minidump dosyalarını barındıramayacak kadar küçük olabilir ve bu da anlık görüntülerin kaybolmasına neden olabilir.
Gereken alan, uygulamanızın toplam çalışma kümesine ve eşzamanlı anlık görüntü sayısına bağlıdır.
32 bit ASP.NET web rolünün çalışma kümesi genellikle 200 MB ile 500 MB arasındadır. En az iki eşzamanlı anlık görüntüye izin verin.
Örneğin, uygulamanız toplam 1 GB çalışma kümesi kullanıyorsa, anlık görüntüleri depolamak için en az 2 GB disk alanı olduğundan emin olmanız gerekir.
Bulut Hizmeti rolünüzü anlık görüntüler için ayrılmış bir yerel kaynakla yapılandırmak için bu adımları izleyin.
Bulut Hizmeti tanımı (.csdef) dosyasını düzenleyerek Bulut Hizmetinize yeni bir yerel kaynak ekleyin. Aşağıdaki örnek, adlı
SnapshotStore
ve boyutu 5 GB olan bir kaynağı tanımlar.<LocalResources> <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" /> </LocalResources>
Yerel kaynağa işaret eden bir ortam değişkeni eklemek için
SnapshotStore
rolünüzün başlangıç kodunu değiştirin. Çalışan Rolleri için kod rolünüzünOnStart
yöntemine eklenmelidir:public override bool OnStart() { Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath); return base.OnStart(); }
Web Rolleri (ASP.NET) için kod web uygulamanızın
Application_Start
yöntemine eklenmelidir:using Microsoft.WindowsAzure.ServiceRuntime; using System; namespace MyWebRoleApp { public class MyMvcApplication : System.Web.HttpApplication { protected void Application_Start() { Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath); // TODO: The rest of your application startup code } } }
tarafından
SnapshotCollector
kullanılan geçici klasör konumunu geçersiz kılmak için rolünüzün ApplicationInsights.config dosyasını güncelleştirin.<TelemetryProcessors> <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector"> <!-- Use the SnapshotStore local resource for snapshots --> <TempFolder>%SNAPSHOTSTORE%</TempFolder> <!-- Other SnapshotCollector configuration options --> </Add> </TelemetryProcessors>
Gölge Kopya klasörünü geçersiz kılma
Anlık Görüntü Toplayıcı başlatıldığında, diskte Anlık Görüntü Yükleyici işlemini çalıştırmaya uygun bir klasör bulmaya çalışır. Seçilen klasör Gölge Kopya klasörü olarak bilinir.
Anlık Görüntü Toplayıcı iyi bilinen birkaç konumu denetler ve Anlık Görüntü Karşıya Yükleyen ikili dosyalarını kopyalama izinlerine sahip olduğundan emin olur. Aşağıdaki ortam değişkenleri kullanılır:
Fabric_Folder_App_Temp
LOCALAPPDATA
APPDATA
TEMP
Uygun bir klasör bulunamazsa, Anlık Görüntü Toplayıcı "Uygun bir gölge kopya klasörü bulunamadı" hatası bildirir.
Kopyalama başarısız olursa, Anlık Görüntü Toplayıcı bir ShadowCopyFailed
hata bildirir.
Karşıya yükleyen başlatılamıyorsa, Anlık Görüntü Toplayıcı bir UploaderCannotStartFromShadowCopy
hata bildirir. İletinin gövdesi genellikle içerir System.UnauthorizedAccessException
. Bu hata genellikle uygulamanın azaltılmış izinlere sahip bir hesap altında çalışması nedeniyle oluşur. Hesabın gölge kopya klasörüne yazma izni vardır, ancak kod yürütme izni yoktur.
Bu hatalar genellikle başlatma sırasında oluştuğundan, genellikle "Yükleyici başlatılamadı" hatasını alır ExceptionDuringConnect
.
Bu hataları geçici olarak çözmek için gölge kopya klasörünü yapılandırma seçeneği aracılığıyla ShadowCopyFolder
el ile belirtebilirsiniz. Örneğin, ApplicationInsights.configkullanarak:
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
<!-- Override the default shadow copy folder. -->
<ShadowCopyFolder>D:\SnapshotUploader</ShadowCopyFolder>
<!-- Other SnapshotCollector configuration options -->
</Add>
</TelemetryProcessors>
Veya bir .NET Core uygulamasıyla appsettings.json kullanıyorsanız:
{
"ApplicationInsights": {
"InstrumentationKey": "<your instrumentation key>"
},
"SnapshotCollectorConfiguration": {
"ShadowCopyFolder": "D:\\SnapshotUploader"
}
}
Anlık görüntülerle özel durumları bulmak için Application Insights aramasını kullanma
Anlık görüntü oluşturulduğunda, oluşturan özel durum bir anlık görüntü kimliğiyle etiketlenmiş durumdadır. Özel durum Application Insights'a bildirildiğinde bu anlık görüntü kimliği özel bir özellik olarak eklenir. Application Insights'ta Arama kullanarak, özel özelliğe sahip ai.snapshot.id
tüm kayıtları bulabilirsiniz.
- Azure portal Application Insights kaynağınıza göz atın.
- Arama'ı seçin.
- Arama metin kutusuna yazın
ai.snapshot.id
ve Enter tuşuna basın.
Bu arama hiçbir sonuç döndürmezse, seçilen zaman aralığında Application Insights'a hiçbir anlık görüntü bildirilmemiştir.
Yükleyici günlüklerinden belirli bir anlık görüntü kimliğini aramak için Arama kutusuna bu kimliği yazın. Karşıya yüklendiğini bildiğiniz bir anlık görüntünün kayıtlarını bulamıyorsanız şu adımları izleyin:
İzleme anahtarını doğrulayarak doğru Application Insights kaynağına baktığınızı bir kez daha denetleyin.
Yükleyici günlüğündeki zaman damgasını kullanarak aramanın Zaman Aralığı filtresini bu zaman aralığını kapsayacak şekilde ayarlayın.
Yine de bu anlık görüntü kimliğine sahip bir özel durum görmüyorsanız, özel durum kaydı Application Insights'a bildirilmiş değildir. Uygulamanız anlık görüntüyü aldıktan sonra ancak özel durum kaydını bildirmeden önce kilitlendiyse bu durum oluşabilir. Bu durumda, beklenmeyen yeniden başlatmalar veya işlenmeyen özel durumlar olup olmadığını görmek için altındaki Diagnose and solve problems
App Service günlüklerini denetleyin.
Ağ proxy'si veya güvenlik duvarı kurallarını düzenleme
Uygulamanız bir ara sunucu veya güvenlik duvarı aracılığıyla İnternet'e bağlanıyorsa, Snapshot Debugger hizmetiyle iletişim kurmak için kuralları güncelleştirmeniz gerekebilir.
Application Insights Snapshot Debugger tarafından kullanılan IP'ler Azure İzleyici hizmet etiketine eklenir. Daha fazla bilgi için bkz. Hizmet Etiketleri belgeleri.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin