Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ETW for .Net developers - DotNext 2016 Piter

ETW for .Net developers - DotNext 2016 Piter

In this talk I’ll make a review of .NET API for Event Tracing for Windows (ETW). I’ll show you how to use ETW for logging. I’ll make a demo of ETW events processing in real-time.

Siarhei Shchahrykovich

July 26, 2022
Tweet

Transcript

  1. Strongly typed logging (semantic logging) • Схема для событий •

    Схема для метаданных The TraceEventLibrary Programmers Guide Vance Morrison 5
  2. ETW – semantic logging • XML схема или Манифест •

    Легко поддаётся автоматизации • Версионирование 6
  3. Производительность • Позволяет логировать 10 000 событий в секунду •

    Каждое событие имеет timestamp • Отсутствие глобальных блокировок • Возможна потеря событий 7
  4. Архитектура Event Consumer Event Provider Event Session Commands Event Data

    File Event Data EventSource TraceEventSession TraceEventSource Event Manifest (Schema) The TraceEvent Library Programmers Guide Vance Morrison 9
  5. Event Provider Event Provider EventSource The TraceEvent Library Programmers Guide

    Vance Morrison • Отправляет события • Вызывает ETW API • Имеет уникальный ID или Имя (RFC 4122) 10
  6. Архитектура Event Consumer Event Provider Event Session Commands Event Data

    File Event Data EventSource TraceEventSession TraceEventSource Event Manifest (Schema) The TraceEvent Library Programmers Guide Vance Morrison 11
  7. Event Session Event Session TraceEventSession The TraceEvent Library Programmers Guide

    Vance Morrison • Управляет логированием • Определяет что логировать • Определяет куда писать логи 12
  8. Архитектура Event Consumer Event Provider Event Session Commands Event Data

    File Event Data EventSource TraceEventSession TraceEventSource Event Manifest (Schema) The TraceEvent Library Programmers Guide Vance Morrison 13
  9. Архитектура Event Consumer Event Provider Event Session Commands Event Data

    File Event Data EventSource TraceEventSession TraceEventSource Event Manifest (Schema) The TraceEvent Library Programmers Guide Vance Morrison 15
  10. Логирование Event Provider Event Session Commands Event Data File EventSource

    TraceEventSession The TraceEvent Library Programmers Guide Vance Morrison 16
  11. Обработка Event Consumer Event Provider File EventSource TraceEventSource Event Manifest

    (Schema) The TraceEvent Library Programmers Guide Vance Morrison 17
  12. Примеры • .NET API для ETW • Логирование с PerfView

    • Microsoft.Diagnostics.Tracing.Logging • SLAB • Out-of-process и in-process логирование 18
  13. Примеры • .NET API для ETW • Логирование с PerfView

    • Microsoft.Diagnostics.Tracing.Logging • SLAB • Out-of-process и in-process логирование 19
  14. ETW резюме • Semantic logging • Высокопроизводительная трассировка • Полная

    поддержка в .NET • Доступно много утилит для записи и обработки 20