Özelleştirilmiş tanılamalar

Hata ayıklama veya gözlemlenebilirlik yeterli değilse, .NET ek tanılama mekanizmalarını destekler.

Olay Kaynağı ile İzleme

Olay Kaynağı , .NET işlemleri içinde olup bitenler hakkında ayrıntılı tanılama bilgileri toplama olanağı sağlar. Çalışma zamanı, GC, kütüphaneler ve uygulama kodu için olan telemetri bilgilerini içerir.

Olay Kaynağı verileri, API'si kullanılarak süreç içi veya Visual Studio, dotnet-monitor, dotnet-trace, PerfView ve Perfcollect betikleri gibi dış tanılama araçlarıyla toplanabilir. İzlemelerde olay kaynağı verilerini toplamak için dış araçları kullanmak genellikle performans analizi için kullanılır.

EventPipe

EventPipe , ETW veya LTTng gibi izleme verilerini toplamak için kullanılabilen bir çalışma zamanı bileşenidir. EventPipe'in amacı, .NET geliştiricilerinin ETW veya LTTng gibi platforma özgü işletim sistemi yerel bileşenlerine güvenmek zorunda kalmadan .NET uygulamalarını kolayca izlemesine olanak sağlamaktır.

EventPipe, tanılama araçlarının birçoğunun arkasındaki mekanizmadır. Çalışma zamanı tarafından yayılan olayların yanı sıra EventSource ile yazılmış özel olayları kullanmak için kullanılabilir.

Veri Dökümleri

Döküm, döküm oluşturma sırasında işlemin anlık görüntüsünü içeren bir dosyadır. Dökümler, hata ayıklama amacıyla uygulamanızın durumunu incelemek için yararlı olabilir.

Semboller

Simgeler , kaynak kod ile derleyici tarafından üretilen ikili kod arasında bir eşlemedir. Bunlar genellikle kaynak satır numaralarını, yerel değişken adlarını ve diğer tanılama bilgilerini çözümlemek için .NET hata ayıklayıcıları ve izleme araçları tarafından kullanılır.

Tanılama bağlantı noktası

.NET çalışma zamanı, diğer işlemlerin tanılama komutları göndermesine ve bir IPC kanalı üzerinden yanıt almasına olanak tanıyan bir hizmet uç noktası sunar. Bu uç nokta tanılama bağlantı noktası olarak adlandırılır. Komutlar tanılama bağlantı noktasına şu şekilde gönderilebilir:

  • Bir bellek dökümü yakalayın.
  • EventPipe izleme başlatın.
  • Uygulamayı başlatmak için kullanılan komut satırını isteyin.

DiagnosticSource & DiagnosticListener

DiagnosticSource, süreç içindeki tüketim için zengin veri yüklerinin çalışma zamanında günlüğe kaydedilmesi amacıyla koda enstrümantasyon eklenmesine olanak tanıyan bir modüldür. Tüketiciler çalışma zamanında veri kaynaklarını dinamik olarak bulabilir ve ilgi çekici kaynaklara abone olabilir. İşlem içi araçların, OpenTelemetry enstrümantasyon kitaplıkları gibi, zengin verilere erişmesine izin vermek için System.Diagnostics.DiagnosticSource tasarlanmıştır. DiagnosticSource verileri, zengin tanılama verilerinin ayrılmış araçlar tarafından toplanmasına olanak tanıyan EventPipe aracılığıyla da aktarılabilir.

Kapsayıcılarda teşhis verilerini toplama

Kapsayıcılı olmayan Linux ortamlarında kullanılan tanılama araçları, kapsayıcılarda tanılama toplamak için de kullanılabilir. Araçların Docker kapsayıcısında çalıştığından emin olmak için yalnızca birkaç kullanım değişikliği gerekir.

Ayrıca bkz.