Aracılığıyla paylaş


Olay İzleme hakkında

Windows için Olay İzleme (ETW), çekirdek veya uygulama tanımlı olayları bir günlük dosyasına kaydetmenizi sağlayan verimli bir çekirdek düzeyinde izleme özelliğidir. Olayları gerçek zamanlı olarak veya bir günlük dosyasından kullanabilir ve bir uygulamada hata ayıklamak veya uygulamada performans sorunlarının nerede oluştuğunu belirlemek için kullanabilirsiniz.

ETW, olay izlemeyi dinamik olarak etkinleştirmenize veya devre dışı bırakmanıza olanak tanıyarak bilgisayar veya uygulama yeniden başlatmalarına gerek kalmadan bir üretim ortamında ayrıntılı izleme gerçekleştirmenizi sağlar.

Olay İzleme API'si üç ayrı bileşene ayrılır:

Aşağıdaki diyagramda olay izleme modeli gösterilmektedir.

olay izleme modeli

Denetleyici

Denetleyiciler, günlük dosyasının boyutunu ve konumunu tanımlayan, olay izleme oturumlarını başlatıp durduran, sağlayıcıları etkinleştirerek olayları oturuma kaydedebilen, arabellek havuzunun boyutunu yönetebilen ve oturumlar için yürütme istatistikleri alan uygulamalardır. Oturum istatistikleri, kullanılan arabellek sayısını, teslim edilen arabellek sayısını ve kaybedilen olay ve arabellek sayısını içerir.

Daha fazla bilgi için bkz. Olay İzleme Oturumlarını Denetleme.

Sağlayıcı

Sağlayıcılar, olay izleme donanımı içeren uygulamalardır. Sağlayıcı kendisini kaydettikten sonra denetleyici sağlayıcıda olay izlemeyi etkinleştirebilir veya devre dışı bırakabilir. Sağlayıcı, etkinleştirildiği veya devre dışı bırakıldığı yorumunu tanımlar. Genellikle etkin bir sağlayıcı olaylar üretirken, devre dışı bırakılmış bir sağlayıcı üretmez. Bu, uygulamanıza her zaman olay oluşturmasına gerek kalmadan olay izleme eklemenize olanak tanır.

ETW modeli denetleyiciyi ve sağlayıcıyı ayrı uygulamalara ayırsa da, bir uygulama her iki bileşeni de içerebilir.

Daha fazla bilgi için bkz. Etkinlik Sağlama.

Sağlayıcı Türleri

Dört ana sağlayıcı türü vardır: MOF (klasik) sağlayıcıları, WPP sağlayıcıları, bildirim tabanlı sağlayıcılar ve TraceLogging sağlayıcıları. Windows Vista veya üzeri için eski sistemleri desteklemesi gerekmeyen uygulamalar yazıyorsanız bildirim tabanlı bir sağlayıcı veya TraceLogging sağlayıcısı kullanmalısınız.

MOF (klasik) sağlayıcıları:

  • Olayları kaydetmek ve yazmak için RegisterTraceGuids ve traceEvent işlevlerini kullanın.
  • Tüketicilerin bunları nasıl kullanacaklarını bilmesi için olayları tanımlamak için MOF sınıflarını kullanın.
  • Bir kerede yalnızca bir izleme oturumu tarafından etkinleştirilebilir.

WPP sağlayıcıları:

  • Olayları kaydetmek ve yazmak için RegisterTraceGuids ve traceEvent işlevlerini kullanın.
  • Önişlemcinin kaynak kodundaki WPP araçlamasından çıkarılan kod çözme bilgilerini içeren ve bir çalıştırılabilir dosyanın .pdb'sine derlenmiş ilişkili TMF dosyalarına sahip olun.
  • Aynı anda yalnızca bir izleme oturumu tarafından etkinleştirilebilir.

Bildirim tabanlı sağlayıcılar:

  • Olayları kaydetmek ve yazmak için EventRegister ve EventWrite kullanın.
  • Tüketicilerin bunları nasıl kullanacaklarını bilmesi için olayları tanımlamak için bir bildirim kullanın.
  • Aynı anda en fazla sekiz izleme oturumu tarafından etkinleştirilebilir.

TraceLogging sağlayıcıları:

  • Olayları kaydetmek ve yazmak için TraceLoggingRegister kullanın ve TraceLoggingWrite .
  • Olayların kendilerinin bunları kullanmak için gerekli tüm bilgileri içermesi için kendi kendini açıklayan olayları kullanın.
  • Aynı anda en fazla sekiz izleme oturumu tarafından etkinleştirilebilir.

Tüm olay sağlayıcıları temel olarak API'lerin Olay İzleme ailesini kullanır (eski teknolojiler için TraceEvent ve daha yeni teknolojiler için EventWrite /EventWriteEx)). Olay sağlayıcıları, olay yüklerinde depoladıkları alan türlerinde ve ilişkili olay kod çözme bilgilerini nerede depoladıklarında farklılık gösterir.

Tüketici

Tüketiciler, etkinlik kaynağı olarak bir veya daha fazla olay izleme oturumunu seçen uygulamalardır. Tüketici aynı anda birden çok olay izleme oturumundan olay isteyebilir; sistem olayları kronolojik sırayla teslim eder. Tüketiciler günlük dosyalarında depolanan olayları veya olayları gerçek zamanlı olarak teslim eden oturumlardan alabilir. Olaylar işlenirken, tüketici başlangıç ve bitiş saatlerini belirtebilir ve yalnızca belirtilen zaman diliminde gerçekleşen olaylar teslim edilecek.

Daha fazla bilgi için bkz. Olayları Tüketme.

Eksik Olaylar

Perfmon, Sistem Tanılama ve diğer sistem araçları, Olay Günlüğü'ndeki eksik olayları bildirebilir ve Windows için Olay İzleme (ETW) ayarlarının en uygun olmayabileceğini gösterebilir. Olaylar çeşitli nedenlerle kaybolabilir:

  • Toplam olay boyutu 64K'dan büyük. Buna ETW üst bilgisinin yanı sıra veriler veya yük dahildir. Olay boyutu uygulama tarafından yapılandırıldığından kullanıcının bu eksik olaylar üzerinde hiçbir denetimi yoktur.

  • ETW arabellek boyutu, toplam olay boyutundan daha küçüktür. Olay boyutu, olayları günlüğe kaydetme uygulaması tarafından yapılandırıldığından kullanıcının bu eksik olaylar üzerinde hiçbir denetimi yoktur.

  • Gerçek zamanlı kayıt için, gerçek zamanlı tüketici olayları yeterince hızlı tüketmiyor veya tamamen mevcut değilse, bu durumda yedekleme dosyası doluyor. Olaylar günlüğe kaydedilirken Olay Günlüğü hizmeti durdurulur ve başlatılırsa bu durumla sonuçlanabilir. Kullanıcının bu eksik olaylar üzerinde hiçbir denetimi yoktur.

  • Bir dosyada oturum açarken disk, günlük hızına ayak uyduramayacak kadar yavaştır.

Bu nedenlerden herhangi biri için lütfen bu sorunları olayları oluşturan uygulama veya hizmet sağlayıcısına bildirin. Bu sorunlar yalnızca uygulama geliştiricisi veya olayları günlüğe kaydetme hizmeti tarafından düzeltilebilir. Eksik olaylar Olay Günlüğü Hizmeti'nde bildiriliyorsa, olay günlüğü hizmetinin yapılandırmasıyla ilgili bir sorun olabilir. Kullanıcının Olay Günlüğü Hizmeti tarafından kullanılacak disk alanı üst sınırını artırma özelliği sınırlı olabilir ve bu da eksik olay sayısını azaltabilir.