.NET için Application Insights Profiler sorun giderme

Bu makalede. .NET için Application Insights Profiler'ı kullanmanıza yardımcı olacak sorun giderme adımları ve bilgileri sağlanır.

Uygun .NET Profil Oluşturucu uç noktasını mı kullanıyorsunuz?

Şu anda yalnızca 21Vianet tarafından sağlanan AzureKamu ve Microsoft Azure için uç nokta değişiklikleri gerekir.

Uygulama ayarı ABD Hükümet Bulutu Çin Bulutu
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
Uygulama İçgörüleri Uç Noktası https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Uygulamanız doğru sürümde mi çalışıyor?

Profil Oluşturucu, 4.6.2'den sonraki .NET Framework sürümlerini destekler.

Web uygulamanız bir ASP.NET Core uygulamasıysa, desteklenen en son ASP.NET Core çalışma zamanında çalıştırılmalıdır.

Doğru Azure hizmet planını mı kullanıyorsunuz?

.NET için profil oluşturucu şu anda ücretsiz veya paylaşılan uygulama hizmeti planlarında desteklenmiyor. Profiler'ın çalışmaya başlaması için temel planlardan birine yükseltin.

Önemli Not

Azure İşlevleri tüketim planı desteklenmez. Bkz. Azure İşlevleri uygulamaları için .NET Profiler'ı etkinleştirme.

Doğru zaman aralığında .NET Profil Oluşturucu verilerini mi arıyorsunuz?

Görüntülemeye çalıştığınız veriler iki haftadan eskiyse, zaman filtrenizi sınırlamayı deneyin ve yeniden deneyin. İzlemeler yedi gün sonra silinir.

.NET Profil Oluşturucu örnekleme oranının ve ek yükünün farkında mısınız?

.NET Profiler, Profiler'ın etkinleştirildiği uygulamaları barındıran her sanal makinede saatte iki dakika rastgele çalışır.

Önemli Not

.NET için Application Insights Profil Oluşturucu etkin bir şekilde çalışırken ve izlemeleri topladığında, genellikle sunucunuza %5 ile %15 arasında CPU ve bellek yükü ekler.

.NET Profiler tarafından yakalanan verileri depolamak için ek maliyet yoktur. Veriler 15 gün sonra otomatik olarak silinir.

Ağ geçidine erişebilir misiniz?

Güvenlik duvarının veya ara sunucuların bu web sayfasına erişiminizi engellemediğini denetleyin.

Zaman aşımları görüyor musunuz yoksa .NET Profiler'ın çalışıp çalışmadığını denetlemeniz mi gerekiyor?

Profilleyici, yalnızca çalışırken gerçekleşen bir isteğe verileri ekleyebildiğinde profil verilerini karşıya yükler. .NET Profil Oluşturucu her saat için iki dakika boyunca veri toplar. Profil oluşturma oturumu başlatarak profil oluşturucuyu da tetikleyebilirsiniz.

Profil oluşturucu, Application Insights kaynağınıza izleme iletileri ve özel olaylar yazar. Profil oluşturucunun nasıl çalıştığını görmek için bu olayları kullanabilirsiniz.

.NET Profiler'ın Application Insights kaynağınıza gönderdiği izleme iletilerini ve özel olayları arayın.

  1. Application Insights kaynağınızda üstteki menüden Ara'yı seçin.

    Application Insights kaynağından Ara düğmesinin seçilmesini gösteren ekran görüntüsü.

  2. İlgili verileri bulmak için aşağıdaki arama dizesini kullanın:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Yukarıda belirtilen arama dizesinden gelen arama sonuçlarını gösteren ekran görüntüsü.

    Yukarıdaki arama sonuçları iki yapay zeka kaynağından yapılan aramalara iki örnek içerir:

    • Profil oluşturucu çalışırken uygulama istek almıyorsa, mesajda herhangi bir etkinlik olmadığı için yüklemenin iptal edildiği açıklanır.

    • Profil oluşturucu çalışırken gerçekleşen istekleri algıladığında, özel olayları başlatır ve gönderir. ServiceProfilerSample Özel olay görüntüleniyorsa, bir profilin yakalanmış olduğu ve Application Insights Performansı sayfasında mevcut olduğu anlamına gelir.

    Hiçbir kayıt görüntülenmezse profil oluşturucu çalışmıyor veya yanıt vermesi çok uzun sürüyor. Azure hizmetinizde Profiler'ın etkinleştirildiğinden emin olun.

.NET Profilleyici açık, ancak hiçbir iz yakalanmamış

Profil Oluşturucu etkinleştirildiğinde bile, özellikle şu durumlarda izlemeleri yakalamayabilir veya karşıya yüklemeyebilir:

  1. Uygulamanıza gelen herhangi bir istek yok:

    Uygulamanızı el ile çağırabilir veya kullanılabilirlik testi veya yük testi oluşturabilirsiniz.

  2. Uygulama İçgörüsü tarafından tanınan bir gelen telemetri yok:

  3. Örnekleme için profil oluşturucu ayarı kapalı:

    Kullanılabilir profil oluşturucu izlemesi yoksa Profil Oluşturucu Örnekleme ayarını denetleyin.

    1. Application Insights>Performans'ı açın.
    2. Profiler'ı seçin.
    3. Tetikleyiciler düğmesini seçin.
    4. Tetikleyici Ayarları'nda Örnekleme'nin açık olduğundan emin olun.
  4. Hala hiçbir iz karşıya yüklenmedi mi?

    Bir destek isteği oluşturun veya Azure topluluk desteğine başvurun. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.

Paralel süreçlerde çifte sayım

İki veya daha fazla paralel iş parçacığı bir istekle ilişkilendirildiğinde, yığın görüntüleyicisinin toplam süre ölçümü isteğin süresini aşabilir. Bu durumda, toplam thread süresi, geçen süreyi aşıyor.

Örneğin, bir iş parçacığı diğer iş parçacığının bitmesini bekleyebilir. Görüntüleyici bu durumu algılamaya çalışır ve ilginç olmayan beklemeyi atlar. Bunu yaparken, kritik olabilecek bilgileri atlamaktansa çok fazla bilgi görüntülemenin yanında hata yapar.

İzlemelerinizde paralel iş parçacıkları gördüğünüzde, isteğin sık erişimli yolunu belirleyebilmeniz için hangi iş parçacıklarının beklediğini belirleyin. Genellikle, hızlı bir şekilde bekleme durumuna geçen iş parçacığı diğer iş parçacıklarını bekler. Diğer iş parçacıklarına odaklanın ve bekleyen iş parçacıklarındaki süreyi göz ardı edin.

Belirli Azure hizmetinizde .NET Profil Oluşturucu sorunlarını giderme

Aşağıdaki bölümlerde, Azure App Service'te Profiler'ı kullanmaya yönelik sorun giderme adımlarında size yol gösterilir.

Azure App Service

.NET Profiler'ın düzgün çalışması için şunları yaptığınızdan emin olun:

  • Doğru ayarlarla web uygulamanız için Application Insights'ı etkinleştirin.

  • ApplicationInsightsProfiler3 WebJob'u çalıştırın. WebJob'u kontrol etmek için:

    1. Kudu'ya gidin. Azure portalında:

      1. App Service örneğinizde sol bölmede Gelişmiş Araçlar'ı seçin.

      2. Git'i seçin.

    2. Üst menüden Araçlar>WebJobs panosu seçin. Web İşleri bölmesi açılır.

      ApplicationInsightsProfiler3 gösterilmiyorsa App Service uygulamanızı yeniden başlatın.

      İşlerin adını, durumunu ve son çalışma zamanını görüntüleyen Web İşleri bölmesini gösteren ekran görüntüsü.

    3. Günlük de dahil olmak üzere Web İşinin ayrıntılarını görüntülemek için ApplicationInsightsProfiler3 bağlantısını seçin. Sürekli Web İşi Ayrıntıları bölmesi açılır.

      Sürekli Web İşi Ayrıntıları bölmesini gösteren ekran görüntüsü.

.NET Profiler hala sizin için çalışmıyorsa, günlüğü indirip bir Azure destek talebi gönderin.

Tanılama Hizmetleri site uzantısı durum sayfasını denetleyin

.NET Profiler'ı Azure portalındaki Application Insights sayfası aracılığıyla etkinleştirdiyseniz Tanılama Hizmetleri site uzantısı yönetir. adresine giderek https://{site-name}.scm.azurewebsites.net/DiagnosticServicesbu uzantının durum sayfasını de kontrol edebilirsiniz.

Önemli 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ıdır. Durum sayfasında .NET Profiler ve Snapshot Debugger aracılarının yükleme durumu gösterilir. Beklenmeyen bir hata varsa, düzeltme adımlarıyla birlikte görüntülenir.

Durum sayfasında .NET Profiler ve Snapshot Debugger aracılarının yükleme durumu gösterilir. Beklenmeyen bir hata oluştuysa, düzeltme adımlarıyla birlikte görüntülenir.

App Service için Kudu yönetim sitesini kullanarak bu durum sayfasının temel URL'sini alabilirsiniz:

  1. App Service uygulamanızı Azure portalında açın.

  2. Gelişmiş Araçlar’ı seçin.

  3. Git'i seçin.

  4. Kudu yönetim sitesinde:

    1. URL'ye /DiagnosticServices ekleyin.
    2. Enter tuşuna basın.

Bu https://<kudu-url>/DiagnosticServices gibi biter.

Durum sayfası aşağıdaki örneğe benzer şekilde görünür.

Tanılama Hizmetleri durum sayfasını gösteren ekran görüntüsü.

Önemli Not

.NET için Application Insights Profiler'ın kodsuz yüklemesi .NET Core destek ilkesini izler. Desteklenen çalışma zamanları hakkında daha fazla bilgi için bkz . .NET Core destek ilkesi.

El ile yükleme

.NET Profiler'ı yapılandırdığınızda, işlem web uygulamasının ayarlarını güncelleştirir. Gerekirse, güncelleştirmeleri el ile uygulayabilirsiniz.

.NET Profiler'ı yapılandırdığınızda, web uygulamasının ayarlarında güncelleştirmeler yapılır. Gerekirse, güncelleştirmeleri el ile uygulayabilirsiniz.

Çok fazla etkin profil oluşturma oturumu

Azure App Service'te vm başına bir kerede yalnızca bir profil oluşturma oturumu sınırı vardır. Bu sınır, app service planında çalışan tüm uygulamalar ve dağıtım yuvaları genelinde VM düzeyinde uygulanır. Bu sınır, .NET için Sorunları tanılama ve çözme, Kudu ve Application Insights Profiler aracılığıyla başlatılan profil oluşturma oturumlarına eşit olarak uygulanır.

Ölçeklendirilerek birden çok örneğe genişletilen tek bir uygulama için, her bir örnek ayrı bir VM üzerinde çalışır ve kendi profil oluşturma oturumunu bağımsız olarak başlatabilir. Çekişme yalnızca aynı App Service Planındaki birden çok uygulama veya dağıtım yuvası aynı VM'yi paylaştığında gerçekleşir.

.NET Profiler aynı VM'de zaten başka bir oturum çalışırken bir oturum başlatmayı denerse, Uygulama Günlüğü'ne ve ayrıca ApplicationInsightsProfiler3 sürekli Web İşi günlüğüne bir hata kaydedilir.

Günlüklerde aşağıdaki iletilerden birini görebilirsiniz:

  • Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
  • Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E

Hata kodu 0xE111005E , başka bir oturum zaten çalıştığından profil oluşturma oturumunun başlatılamadığını gösterir.

Hatadan kaçınmak ve dağıtım günlüklerinizdeki gürültüyü azaltmak için:

  • Vm'leri paylaşmamaları için bazı web uygulamalarını farklı bir App Service Planına taşıyın.
  • Profil oluşturma gerektirmeyen uygulamalarda Profiler'ı devre dışı bırakın.
  • Kullanılmayan dağıtım yuvalarını durdurun. Her çalışan yuvada Profil Oluşturucu etkindir ve vm'sinde profil oluşturma oturumu için rekabet eder.
  • Dağıtımlar sırasında, yuva değiştirmelerin eş zamanlı oturumları tetiklemesinden kaynaklanan hataları önlemek için hazırlık aşamasındaki yuvalarda Profiler’ı geçici olarak devre dışı bırakmayı göz önünde bulundurun.

Dağıtım hatası: Dizin Boş Değil 'D:\home\site\wwwroot\App_Data\jobs'

Web uygulamanızı .NET Profiler etkinleştirilmiş bir Web Apps kaynağına yeniden dağıtıyorsanız aşağıdaki iletiyi görebilirsiniz:

"Dizin Boş Değil 'D:\home\site\wwwroot\App_Data\jobs'"

Web Dağıtımı'nın betiklerden veya Azure Pipelines'dan çalıştırılması durumunda bu hata oluşur. Web Dağıtımı görevine aşağıdaki dağıtım parametrelerini ekleyerek sorunu çözün:

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Bu parametreler.NET için Application Insights Profiler tarafından kullanılan klasörü siler ve yeniden dağıtma işleminin engelini kaldırır. Şu anda çalışmakta olan Profiler örneğini etkilemez.

.NET için Application Insights Profil Oluşturucu çalışıyor mu?

Profil Oluşturucu, web uygulamasında sürekli bir WebJob olarak çalışır. Web uygulaması kaynağını Azure portalında açabilirsiniz. Web İşleri bölmesinde ApplicationInsightsProfiler'ın durumunu denetleyin. Çalışmıyorsa daha fazla bilgi edinmek için Günlükler'i açın.

Sanal makineler

.NET Profiler'ın Azure Tanılama tarafından doğru yapılandırılıp yapılandırılmadığını görmek için:

  1. Dağıtılan Azure Tanılama yapılandırmasının beklentilerinize uygun olduğunu doğrulayın.

  2. Dağıtılan Azure Tanılama yapılandırmasının içeriğinin beklediğiniz gibi olduğunu doğrulayın.

  3. Azure Tanılama'nın Profil Oluşturucu komut satırında doğru iKey değerini geçirdiğinden emin olun.

  4. Azure Tanılama'in Profiler komut satırında uygun iKey değerini geçirdiğinden emin olun.

  5. .NET Profiler'ın çalışıp çalışmadığını ve bir hata döndürüp döndürmediğini görmek için Profiler günlük dosyasını gözden geçirin.

Azure Tanılama'yı yapılandırmak için kullanılan ayarları denetlemek için:

  1. Sanal makinede oturum açın.

  2. Günlük dosyasını bu konumda açın. Eklenti sürümü makinenizde daha yeni olabilir.

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. Azure Diagnostics'ın yapılandırma ayarlarını sanal makineye aktardığı ayarları bulmak için dosyada WadCfg dizini arayın.

  4. .NET Profiler havuzu tarafından kullanılan iKey değerinin doğru olduğunu doğrulayın.

  5. Profiler'ı başlatan komut satırını denetleyin. Komut satırı bağımsız değişkenleri aşağıdaki dosyadadır (sürücü c: veya d: olabilir ve dizin gizli olabilir):

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Profil Oluşturucu komut satırındaki iKey değerinin doğru olduğundan emin olun.

  7. Önceki config.json dosyasında bulunan yolu kullanarak BootstrapN.log adlı Profil Oluşturucu günlük dosyasını kontrol edin. Şunları görüntüler:

    • Profiler'ın kullandığı ayarları gösteren hata ayıklama bilgileri.
    • Profiler'dan durum ve hata iletileri.

    Dosyayı bulabilirsiniz:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Uygulamanız istek alırken .NET Profil Oluşturucu çalışıyorsa şu ileti görüntülenir: "iKey'den etkinlik algılandı."

  9. İzleme karşıya yüklenirken şu ileti görüntülenir: "İzlemeyi karşıya yüklemeye başlayın."

Ağ proxy'si veya güvenlik duvarı kurallarını düzenleme

Uygulamanız bir ara sunucu veya güvenlik duvarı kullanarak İnternet'e bağlanıyorsa, .NET Profiler ile iletişim kurmak için kuralları güncelleştirmeniz gerekebilir.

.NET için Application Insights Profiler tarafından kullanılan IP adresleri Azure İzleyici hizmet etiketine eklenir. Daha fazla bilgi için bkz . Azure hizmet etiketlerine genel bakış.

"Kendi depolama alanınızı getirin" (BYOS) sorun giderme

BYOS'u yapılandırmayla ilgili yaygın sorunları giderme.

Senaryo: Template schema '{schema_uri}' isn't supported

Aşağıdaki örneğe benzer bir hata aldınız:

New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.

Çözümler

  • Şablonun $schema özelliğinin geçerli olduğundan emin olun. Bu desene uygun olmalıdır:

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • Şablonun schema_version geçerli değerler içinde olduğundan emin olun: 2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.

Senaryo: No registered resource provider found for location '{location}'

Aşağıdaki örneğe benzer bir hata aldınız:

New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
  "error": {
    "code": "NoRegisteredProviderFound",
    "message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
  }
}'

Çözümler

  • Kaynağın apiVersionmicrosoft.insights/components2015-05-01 olduğundan emin olun.
  • Kaynağın apiVersionlinkedStorageAccount2020-03-01-preview olduğundan emin olun.

Senaryo: Storage account location should match Application Insights component location

Aşağıdaki örneğe benzer bir hata aldınız:

New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
  "error": {
    "code": "BadRequest",
    "message": "Storage account location should match AI component location",
    "innererror": {
      "trace": [
        "System.ArgumentException"
      ]
    }
  }
}'

Çözüm

Application Insights kaynağının konumunun depolama hesabıyla aynı olduğundan emin olun.

Destek

Hala yardıma ihtiyacınız varsa Azure portalında soru işareti simgesini seçerek bir destek bileti gönderin. Hata iletisindeki bağıntı kimliğini ekleyin.