Application Insights ile ilgili performans sorunlarını bulma ve tanılama

Application Insights, uygulamanızdan çalışma ve performans analizine yardımcı olan telemetri verileri toplar. Bu bilgileri kullanarak gerçekleşmekte olan sorunları belirleyebilir veya uygulamanın geliştirilmesi durumunda kullanıcıları en çok etkileyebilecek özelliklerini belirleyebilirsiniz. Bu öğreticide hem uygulamanızın sunucu bileşenlerinin performansını hem de istemcinin bakış açısını analiz etme süreci adım adım gösterilir.

Şunları yapmayı öğreneceksiniz:

  • Sunucu tarafı işlemlerinin performansını belirleyin.
  • Yavaş performansın kök nedenini belirlemek için sunucu işlemlerini analiz edin.
  • En yavaş istemci tarafı işlemlerini belirleyin.
  • Sorgu dilini kullanarak sayfa görünümlerinin ayrıntılarını analiz edin.

Önkoşullar

Bu öğreticiyi tamamlamak için:

  • Visual Studio 2019'u aşağıdaki iş yükleriyle yükleyin:
    • ASP.NET ve web geliştirme
    • Azure geliştirme
  • .NET uygulamasını Azure'a dağıtma ve Application Insights SDK'sını etkinleştirme
  • Uygulamanız için Application Insights profil oluşturucuyu etkinleştirme.

Azure'da oturum açma

Azure Portal’ında oturum açın.

Yavaş sunucu işlemlerini belirleme

Application Insights, uygulamanızdaki farklı işlemlerin performans ayrıntılarını toplar. İşlemleri en uzun süreyle tanımlayarak olası sorunları tanılayabilir veya uygulamanın genel performansını geliştirmek için devam eden geliştirmenizi hedefleyebilirsiniz.

  1. Application Insights’ı ve sonra aboneliğinizi seçin.

  2. Performans panelini açmak için Araştır menüsünden Performans'ı seçin veya Sunucu yanıt süresi grafiğini seçin.

    Performans görünümünü gösteren ekran görüntüsü.

  3. Performans ekranı, uygulama için her işlemin sayısını ve ortalama süresini gösterir. Bu bilgileri, kullanıcıları en çok etkileyen işlemleri tanımlamak için kullanabilirsiniz. Bu örnekte, olası araştırma adayları süresi ve çağrı sayısı nispeten yüksek olan GET Customers/Details ve GET Home/Index işlemleridir. Diğer işlemlerin süresi daha yüksek olabilir ancak nadiren çağrılabilir, bu nedenle iyileştirmelerinin etkisi en az olacaktır.

    Performans sunucusu panelini gösteren ekran görüntüsü.

  4. Grafikte şu anda, seçilen çağrıların zaman içindeki ortalama süresi gösterilmektedir. Performans sorunlarını bulmak için 95. yüzdebirliğe geçiş yapabilirsiniz. İlgilendiğiniz işlemleri grafiğe sabitleyerek ekleyin. Grafikte araştırılmaya değer bazı zirveler olduğu gösterilmektedir. Bunları daha fazla yalıtmak için grafiğin zaman penceresini azaltın.

    Pin işlemlerini gösteren ekran görüntüsü.

  5. Sağ taraftaki performans panelinde, seçilen işleme ilişkin farklı istek sürelerinin dağıtımı gösterilmektedir. 95. yüzdebirlikten başlamak için zaman aralığını kısaltın. İlk 3 Bağımlılık içgörü kartı, dış bağımlılıkların yavaş işlemlere katkıda bulunduğunu bir bakışta söyleyebilir. Örneklerin listesini görmek için örnek sayısını içeren düğmeyi seçin. Ardından işlem ayrıntılarını görmek için herhangi bir örneği seçin.

  6. Fabrikamaccount Azure Tablosu çağrısının işlemin toplam süresine en çok katkıda bulunduğunu bir bakışta görebilirsiniz. Ayrıca, işlemin başarısız olmasına neden olan bir özel durum oluştuğunu da görebilirsiniz. Sağ tarafta ayrıntılarını görmek için listedeki herhangi bir öğeyi seçin.

    İşlem uçtan uca işlem ayrıntılarını gösteren ekran görüntüsü.

  7. Profil Oluşturucu, işlem için çalıştırılan gerçek kodu ve her adım için gereken süreyi göstererek kod düzeyinde tanılama konusunda daha fazla bilgi edinebilir. Profil Oluşturucu düzenli aralıklarla çalıştığından bazı işlemlerde izleme olmayabilir. Zamanla daha fazla işlemin izlemesi olmalıdır. İşlemin Profiler'ını başlatmak için Profil oluşturucu izlemeleri'ni seçin.

  8. İzleme, her işlemin tek tek olaylarını gösterir, böylece genel işlem süresi boyunca kök nedeni tanılayabilirsiniz. En uzun süreye sahip en iyi örneklerden birini seçin.

  9. İşlemin toplam süresine en çok katkıda bulunan olayların belirli yolunu vurgulamak için Sık Erişimli yol'a tıklayın. Bu örnekte, en yavaş çağrının yönteminden FabrikamFiberAzureStorage.GetStorageTableData olduğunu görebilirsiniz. En çok zaman alan bölüm yöntemidir CloudTable.CreateIfNotExist . İşlev her çağrıldığında bu kod satırı yürütülürse gereksiz ağ çağrısı ve CPU kaynakları kullanılır. Kodunuzu düzeltmenin en iyi yolu, bu satırı yalnızca bir kez yürütülen bir başlangıç yöntemine yerleştirmektir.

    Profil Oluşturucu ayrıntılarını gösteren ekran görüntüsü.

  10. Ekranın üst kısmındaki Performans İpucu , aşırı sürenin bekleme nedeniyle olduğu değerlendirmesini destekler. Farklı olay türlerini yorumlamaya ilişkin belgeler için bekleme bağlantısını seçin.

    Performans İpucu gösteren ekran görüntüsü.

  11. Daha fazla analiz için İzlemeyi İndir'i seçerek izlemeyi indirin. Bu verileri PerfView kullanarak görüntüleyebilirsiniz.

Sunucu için günlük verilerini kullanma

Günlükler, Application Insights tarafından toplanan tüm verileri analiz etmek için kullanabileceğiniz zengin bir sorgu dili sağlar. İstek ve performans verileri üzerinde derin analiz gerçekleştirmek için bu özelliği kullanabilirsiniz.

  1. İşlem ayrıntıları paneline dönün ve Günlüklerde Görüntüle (Analiz) seçeneğini belirleyinGünlükler simgesi.

  2. Günlükler ekranı, paneldeki görünümlerin her biri için bir sorguyla açılır. Bu sorguları olduğu gibi çalıştırabilir veya gereksinimlerinize göre özelleştirebilirsiniz. İlk sorgu, zaman içinde bu işlemin süresini gösterir.

    Günlük sorgusu gösteren ekran görüntüsü.

Yavaş istemci işlemlerini belirleme

Application Insights, iyileştirilecek sunucu işlemlerini belirlemeye ek olarak istemci tarayıcılarının bakış açısını da analiz edebilir. Bu bilgiler, istemci bileşenlerinde olası iyileştirmeleri belirlemenize ve hatta farklı tarayıcılarla veya farklı konumlarla ilgili sorunları belirlemenize yardımcı olabilir.

  1. Araştır'ın altında Tarayıcı'ya ve ardından Tarayıcı Performansı'ne tıklayın. Alternatif olarak, Araştır'ın altında Performans'ı seçin ve tarayıcı performans özetini açmak için sağ üst köşedeki Sunucu/Tarayıcı iki durumlu düğmesini seçerek Tarayıcı sekmesine geçin. Bu görünüm, tarayıcınızın perspektifinden uygulamanızın çeşitli telemetrilerinin görsel bir özetini sağlar.

    Tarayıcı özetini gösteren ekran görüntüsü.

  2. İşlem adlarından birini seçin, sağ alttaki Örnekler düğmesini ve ardından bir işlem seçin. Uçtan uca işlem ayrıntıları, Sayfa Görünümü Özelliklerini görüntüleyebileceğiniz sağ tarafta açılır. Tarayıcı türü ve konumu dahil olmak üzere sayfayı isteyen istemcinin ayrıntılarını görüntüleyebilirsiniz. Bu bilgiler, belirli istemci türleriyle ilgili performans sorunları olup olmadığını belirlemenize yardımcı olabilir.

    Sayfa Görünümü Özelliklerini gösteren ekran görüntüsü.

İstemci için günlük verilerini kullanma

Sunucu performansı için toplanan veriler gibi Application Insights da günlükleri kullanarak tüm istemci verilerini derin analiz için kullanılabilir hale getirir.

  1. Tarayıcı özetine dönün ve Günlüklerde Görüntüle (Analiz) seçeneğini belirleyinGünlükler simgesi.

  2. Günlükler ekranı, paneldeki görünümlerin her biri için bir sorguyla açılır. İlk sorgu, zaman içinde farklı sayfa görüntüleme işlemlerinin süresini gösterir.

    Günlükler ekranını gösteren ekran görüntüsü.