Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yazılım her zaman beklediğiniz gibi davranmaz, ancak .NET'in bu sorunları hızlı ve etkili bir şekilde tanılamanıza yardımcı olacak araçları ve API'leri vardır.
Yerel AOT dağıtımı , .NET 7'den beri kullanılabilen bir uygulama modelidir. Yerel AOT uygulamaları için .NET 8 tanılama desteği hakkında bilgi için bkz. Yerel AOT tanılaması.
Bu makale, ihtiyacınız olan çeşitli araçları bulmanıza yardımcı olur.
Hata ayıklayıcı
Hata ayıklayıcıları programınızla etkileşim kurmanızı sağlar. Duraklatma, artımlı olarak yürütme, inceleme ve devam ettirmek, kodunuzun davranışı hakkında içgörü sağlar. Hata ayıklayıcı, kolayca yeniden oluşturulabilen işlevsel sorunları tanılamak için iyi bir seçimdir.
Profilleyicilerini
Profil oluşturucular , programınızın performansını analiz etmenizi sağlar. Performans sorunlarını tanılamak ve anlamak için bellek kullanımı, CPU kullanımı ve diğer ölçümler hakkında veri toplayabilirsiniz.
Gözlemlenebilirlik için izleme
.NET, yaygın olarak gözlemlenebilirliğin üç sütunu olarak bilinen ölçümleri, günlükleri ve dağıtılmış izlemeleri kullanan endüstri standardı izleme tekniklerini destekler.
İzleme, bir yazılım projesine ne yaptığını kaydetmek için eklenen koddur. Bu bilgiler daha sonra dosyalarda, veritabanlarında veya bellek içinde toplanabilir ve bir yazılım programının nasıl çalıştığını anlamak için analiz edilebilir. Bu genellikle üretim ortamlarında sorunları izlemek ve bunları tanılamak için kullanılır. .NET çalışma zamanı, isteğe bağlı olarak etkinleştirilebilen yerleşik izlemelere ve uygulamanız için özel izleme eklemenize olanak sağlayan API'lere sahiptir.
Kayıtlar
Günlüğe kaydetme , program çalışırken gerçekleşen ilginç olayların kaydı olan bir günlük oluşturmak için kodun izlendiği bir tekniktir. Genellikle bir günlük olayları temel kümesi varsayılan olarak yapılandırılır ve belirli sorunları tanılamak için isteğe bağlı olarak daha kapsamlı günlükler etkinleştirilebilir. Performans yükü, günlüğe kaydedilen veri miktarına bağlı olarak değişkendir.
Mevcut bir projeye günlük ekleme veya yeni proje oluşturma gibi çoğu durumda ILogger altyapısı iyi bir varsayılan seçenektir.
ILogger hızlı yapılandırılmış günlüğe kaydetmeyi, esnek yapılandırmayı ve bir ASP.NET uygulamasını çalıştırırken gördüğünüz konsol dahil ortak havuz koleksiyonunu destekler. Ayrıca, ILogger arabirim, zengin işlevsellik ve genişletilebilirlik sunan birçok üçüncü taraf günlük uygulaması üzerinde bir cephe işlevi de görebilir.
Metrics
Ölçümler , uygulama performansını ve sistem durumunu izlemek için zaman içinde kaydedilen sayısal ölçümlerdir. Ölçümler genellikle olası sorunlar algılandığında uyarı oluşturmak için kullanılır. Ölçümler çok düşük performans ek yüküne sahiptir ve birçok hizmet bunları her zaman açık telemetri olarak yapılandırır. Özel durumlar genellikle ölçüm olarak kaydedilir ve verilerin kardinalitesini azaltmak için özetlenebilir. Daha fazla bilgi için bkz. Özel durum özetleme.
Dağıtılmış izlemeler
Dağıtılmış İzleme , birden çok makine veya işlem arasında dağıtılan uygulamalardaki hataları ve performans sorunlarını yerelleştirmenize yardımcı olan özel bir günlük kaydı biçimidir. Bu teknik, farklı uygulama bileşenleri tarafından yapılan çalışmaları bir arada ilişkilendiren ve eşzamanlı istekler için uygulamanın yaptığı diğer işlerden ayıran bir uygulama aracılığıyla istekleri izler. Performans ek yükünü sınırlamak için isteğe bağlı olarak her isteği ve örneklemeyi izlemek mümkündür.
İzlemeyi toplama
İzleme verilerinin uygulamadan çıkarılabilmesinin birden çok yolu vardır, örneğin:
- OpenTelemetry - Telemetri verilerini toplamak ve dışarı aktarmak için platformlar arası, satıcıdan bağımsız bir standart
- dotnet-counters gibi .NET CLI araçları
- dotnet-monitor - izlemeleri ve telemetri verilerini toplamak için bir aracı
- Üçüncü taraf kitaplıkları veya uygulama kodu, , ILogger<TCategoryName>ve System.Diagnostics.Activity API'lerinden System.Diagnostics.Metricsbilgileri okuyabilir.
Özelleştirilmiş tanılamalar
Hata ayıklama veya gözlemlenebilirlik yeterli değilse, .NET EventSource, Dumps, DiagnosticSource gibi ek tanılama mekanizmalarını destekler. Daha fazla bilgi için özelleştirilmiş tanılama makalesine bakın.
Tanılama araçları
.NET, uygulamalarınızı tanılamak için kullanılabilecek bir dizi CLI aracını destekler.
.NET Core tanılama öğreticileri
Bellek sızıntısını ayıklama
Öğretici: Bellek sızıntısında hata ayıklama, bellek sızıntısını bulma konusunda yol gösterir. Sızıntıyı onaylamak için dotnet-counters aracı ve sızıntıyı tanılamak için dotnet-dump aracı kullanılır.
Yüksek CPU kullanımı hatasını ayıklama
Öğretici: Yüksek CPU kullanımında hata ayıklama , yüksek CPU kullanımını araştırma konusunda size yol gösterir. Yüksek CPU kullanımını onaylamak için dotnet-counters aracını kullanır. Ardından CPU kullanım profilini toplamak ve görüntülemek için Performans analizi için izleme yardımcı programını (dotnet-trace) veya Linux'ı perf kullanmada size yol gösterir.
Kilitlenme hatalarını ayıklama
Öğretici: Hata ayıklama kilitlenmesi , iş parçacıklarını ve kilitleri araştırmak için dotnet-dump aracını nasıl kullanacağınızı gösterir.
ThreadPool Açlıktan Hata Ayıklama
Öğretici: ThreadPool'da hata ayıklamak içindotnet-counters ve dotnet-stack araçlarını kullanarak ThreadPool'un aç kalma durumuyla ilgili araştırma yapmayı öğreneceksiniz.
StackOverflow hatalarını ayıklama
Öğretici: StackOverflow'da hata ayıklama , Linux'ta hata ayıklamayı StackOverflowException gösterir.
Linux dökümlerinde hata ayıklama
Linux dökümlerinde hata ayıklama, Linux'ta dökümlerin nasıl toplanacağını ve analiz edileceğini açıklar.
EventCounters kullanarak performansı ölçme
Öğretici: .NET'te EventCounters kullanarak performansı ölçme, .NET uygulamanızda performansı ölçmek için API'nin nasıl kullanılacağını EventCounter gösterir.
Kendi tanılama aracınızı yazma
Tanılama istemci kitaplığı, tanılama senaryonuz için en uygun olan kendi özel tanılama aracınızı yazmanızı sağlar. Daha fazla bilgi için bkz . Microsoft.Diagnostics.NETCore.Client API başvurusu.