Azure Application Insights ile çalışma zamanı özel durumlarını bulma ve tanılamaFind and diagnose run-time exceptions with Azure Application Insights

Azure Application Insights, uygulamanızdan çalışma zamanı özel durumlarının belirlenip tanılanmasına yardımcı olan telemetri verileri toplar.Azure Application Insights collects telemetry from your application to help identify and diagnose run-time exceptions. Bu öğreticide, uygulamanızda bu işlemi gerçekleştirme adımları gösterilir.This tutorial takes you through this process with your application. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:You learn how to:

  • Özel durum izlemeyi etkinleştirmek için projenizi değiştirmeModify your project to enable exception tracking
  • Uygulamanızın farklı bileşenlerine yönelik özel durumları belirlemeIdentify exceptions for different components of your application
  • Bir özel durumun ayrıntılarını görüntülemeView details of an exception
  • Hata ayıklama için özel durumun anlık görüntüsünü Visual Studio’ya indirmeDownload a snapshot of the exception to Visual Studio for debugging
  • Sorgu dilini kullanarak başarısız isteklerin ayrıntılarını analiz etmeAnalyze details of failed requests using query language
  • Hatalı kodu düzeltmek için yeni iş öğesi oluşturmaCreate a new work item to correct the faulty code

Ön koşullarPrerequisites

Bu öğreticiyi tamamlamak için:To complete this tutorial:

Azure'da oturum açmaLog in to Azure

Azure portalına giriş https://portal.azure.comyapın.Log in to the Azure portal at https://portal.azure.com.

Hataları analiz etmeAnalyze failures

Application Insights, uygulamanızdaki tüm hataları toplar ve bunların farklı işlemlerdeki sıklığını görüntüleyerek etki düzeyi en yüksek olan hatalara odaklanmanıza yardımcı olur.Application Insights collects any failures in your application and lets you view their frequency across different operations to help you focus your efforts on those with the highest impact. Daha sonra bu hataların ayrıntılarına inerek kök nedeni belirleyebilirsiniz.You can then drill down on details of these failures to identify root cause.

  1. Application Insights’ı ve sonra aboneliğinizi seçin.Select Application Insights and then your subscription.

  2. Hatalar panelini açmak için Araştır menüsü altından Hatalar’ı seçin veya Başarısız istekler grafiğine tıklayın.To open the Failures panel either select Failures under the Investigate menu or click the Failed requests graph.

    Başarısız istekler

  3. Başarısız istekler panelinde, uygulama için başarısız istek sayısı ve her işlemden etkilenen kullanıcı sayısı gösterilir.The Failed requests panel shows the count of failed requests and the number of users affected for each operation for the application. Bu bilgileri kullanıcı sayısına göre sıralayarak kullanıcıları en çok etkileyen hataları bulabilirsiniz.By sorting this information by user you can identify those failures that most impact users. Bu örnekte, olası araştırma adayları hata sayısı ve etkilenen kullanıcı sayısı yüksek olan GET Employees/Create ve GET Customers/Details işlemleridir.In this example, the GET Employees/Create and GET Customers/Details are likely candidates to investigate because of their large number of failures and impacted users. Bir işlem seçildiğinde, sağdaki panelde işlemle ilgili daha fazla bilgi gösterilir.Selecting an operation shows further information about this operation in the right panel.

    Başarısız istekler paneli

  4. Hata oranında ani bir artışın yaşandığı döneme odaklanmak için zaman aralığını daraltın.Reduce the time window to zoom in on the period where the failure rate shows a spike.

    Başarısız istekler penceresi

  5. Filtrelenmiş sonuç sayısının bulunduğu düğmeye tıklayarak ilgili örneklere göz atın.See the related samples by clicking on the button with the number of filtered results. "Önerilen" örnekler, örnekleme herhangi birinde etkili olmuş olsa bile tüm bileşenler arasından ilgili telemetriye sahiptir.The "suggested" samples have related telemetry from all components, even if sampling may have been in effect in any of them. Hata ayrıntılarını görmek için bir arama sonucuna tıklayın.Click on a search result to see the details of the failure.

    Başarısız istek örnekleri

  6. Başarısız istek ayrıntılarında Gannt grafiği görüntülenir. Grafikte, bu işlemde, işlemin toplam süresinin % 50'sinden fazlasını oluşturan iki adet bağımlılık hatası olduğu gösterilmektedir.The details of the failed request shows the Gantt chart which shows that there were two dependency failures in this transaction, which also attributed to over 50% of the total duration of the transaction. Bu deneyim, dağıtılmış bir uygulamanın bileşenleri arasında bu işlem kimliğiyle ilişkili tüm telemetrileri sunar.This experience presents all telemetry, across components of a distributed application that are related to this operation ID. Yeni deneyim hakkında daha fazla bilgi edinin.Learn more about the new experience. Sağ tarafta, ayrıntılarını görmek istediğiniz öğelerden herhangi birini seçebilirsiniz.You can select any of the items to see its details on the right side.

    Başarısız istek ayrıntıları

  7. İşlemlerin ayrıntısında hataya yol açmış gibi görünen bir FormatException da gösterilir.The operations detail also shows a FormatException which appears to have caused the failure. Sorunun geçersiz bir posta kodundan kaynaklandığını görebilirsiniz.You can see that it's due to an invalid zip code. Visual Studio'da kod düzeyinde hata ayıklama bilgilerini görmek için hata ayıklama anlık görüntüsünü açabilirsiniz.You can open the debug snapshot to see code level debug information in Visual Studio.

    Özel durum ayrıntıları

Başarısız olan kodu belirlemeIdentify failing code

Snapshot Debugger, uygulamanızda en sık karşılaşılan özel durumların anlık görüntülerini toplayarak üretimde sorunun kök nedenini tanılamanıza yardımcı olur.The Snapshot Debugger collects snapshots of the most frequent exceptions in your application to assist you in diagnosing its root cause in production. Hata ayıklama anlık görüntülerini portalda görüntüleyerek çağrı yığınını görebilir ve her bir çağrı yığını çerçevesinde değişkenleri inceleyebilirsiniz.You can view debug snapshots in the portal to see the call stack and inspect variables at each call stack frame. Daha sonra, anlık görüntüindirerek ve Visual Studio 2019 Enterprise'da açarak kaynak kodu hata ayıklama seçeneğiniz vardır.Afterwards, you have the option to debug the source code by downloading the snapshot and opening it in Visual Studio 2019 Enterprise.

  1. Özel durumun özelliklerinden Hata ayıklama anlık görüntüsünü aç’a tıklayın.In the properties of the exception, click Open debug snapshot.

  2. İsteğe yönelik çağrı yığınıyla birlikte Hata Ayıklama Anlık Görüntüsü paneli açılır.The Debug Snapshot panel opens with the call stack for the request. Tüm yerel değişkenlerin istek sırasında sahip olduğu değerleri görüntülemek için herhangi bir metoda tıklayın.Click any method to view the values of all local variables at the time of the request. Başta bu örnekte en çok kullanılan metot olmak üzere değeri olmayan yerel değişkenleri görebiliriz.Starting from the top method in this example, we can see local variables that have no value.

    Hata ayıklama anlık görüntüsü

  3. Geçerli değerlere sahip olan ilk çağrı ValidZipCode çağrısıdır ve posta kodunun bir tamsayıya çevrilemeyen harflerle sağlandığını görebiliriz.The first call that has valid values is ValidZipCode, and we can see that a zip code was provided with letters that isn't able to be translated into an integer. Kodda düzeltilmesi gereken hata bu gibi görünüyor.This appears to be the error in the code that needs to be corrected.

    Hata ayıklama anlık görüntüsü

  4. Daha sonra, düzeltilmesi gereken gerçek kodu bulabileceğimiz Visual Studio'ya bu anlık görüntünün indirilmesi seçeneğiniz vardır.You then have the option to download this snapshot into Visual Studio where we can locate the actual code that needs to be corrected. Bunu yapmak için Anlık Görüntü İndir'itıklatın.To do so, click Download Snapshot.

  5. Anlık görüntü Visual Studio'ya yüklenir.The snapshot is loaded into Visual Studio.

  6. Artık Visual Studio Enterprise'da özel durumlara neden olan kod satırını hızla tanımlayan bir hata ayıklama oturumu çalıştırabilirsiniz.You can now run a debug session in Visual Studio Enterprise that quickly identifies the line of code that caused the exception.

    Kodda özel durum

Analiz verilerini kullanmaUse analytics data

Application Insights tarafından toplanan tüm veriler, bunları çeşitli yollarla analiz edebilmeniz için zengin bir sorgu dili sağlayan Azure Log Analytics’te depolanır.All data collected by Application Insights is stored in Azure Log Analytics, which provides a rich query language that allows you to analyze the data in a variety of ways. Bu verileri kullanarak araştırmakta olduğumuz özel durumu oluşturan istekleri analiz edebiliriz.We can use this data to analyze the requests that generated the exception we're researching.

  1. Application Insights tarafından sağlanan telemetri verilerini görüntülemek için kodun üzerindeki CodeLens bilgilerine tıklayın.Click the CodeLens information above the code to view telemetry provided by Application Insights.

    Kod

  2. Etkiyi çözümleyin’e tıklayarak Application Insights Analytics’i açın.Click Analyze impact to open Application Insights Analytics. Analytics, başarısız isteklerle ilgili olarak etkilenen kullanıcılar, tarayıcılar ve bölgeler gibi ayrıntıları sağlayan çeşitli sorgularla doldurulur.It's populated with several queries that provide details on failed requests such as impacted users, browsers, and regions.

    AnalizlerAnalytics

İş öğesi eklemeAdd work item

Application Insights’ı Azure DevOps veya GitHub gibi bir izleme sistemine bağlarsanız doğrudan Application Insights’tan bir iş öğesi oluşturabilirsiniz.If you connect Application Insights to a tracking system such as Azure DevOps or GitHub, you can create a work item directly from Application Insights.

  1. Application Insights’taki Özel Durum Özellikleri paneline dönün.Return to the Exception Properties panel in Application Insights.

  2. Yeni İş Öğesi’ne tıklayın.Click New Work Item.

  3. Zaten doldurulan özel durumla ilgili ayrıntıları içeren Yeni İş Öğesi paneli açılır.The New Work Item panel opens with details about the exception already populated. Bunu kaydetmeden önce dilediğiniz kadar ek bilgi ekleyebilirsiniz.You can add any additional information before saving it.

    Yeni İş Öğesi

Sonraki adımlarNext steps

Artık çalışma zamanı özel durumlarının nasıl belirleneceğini öğrendiğinize göre, performans sorunlarını belirlemeyi ve tanılamayı öğrenmek için bir sonraki öğreticiye ilerleyebilirsiniz.Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to identify and diagnose performance issues.