Формат файла трассировки Windows ETL? - PullRequest
3 голосов
/ 12 октября 2009

У меня есть провайдер ETW, который используется моей системой для записи непрозрачных больших двоичных данных с помощью функции API TraceEvent. Моя система по сути является системой обработки событий с высокой пропускной способностью, и я хочу иметь возможность (дешево) фиксировать сериализованное состояние определенных объектов при их прохождении через систему. Это даст мне возможность воспроизведения, чтобы в любое время в будущем я мог воспроизвести трассировку событий и воспроизвести точную последовательность событий, которые привели к определенному состоянию в приложении.

Это все еще на ранних стадиях, поэтому в настоящий момент я могу контролировать трассировку только с помощью одного из инструментов, таких как logman или tracelog, который может создавать контроллеры трассировки для записи событий в файл трассировки с помощью файла .etl. расширение. Я знаю, что мог бы написать автономный контроллер, который мог бы потреблять события в реальном времени и записывать события в файл самостоятельно, но я хочу попытаться избежать этого на этом этапе (назовите это лень :)), но серьезно, зачем переписывать то, что уже доступны

Итак, кто-нибудь имеет представление о двоичном формате файлов .etl? Я знаю, что что-то вроде tracedmp может их читать и создавать CSV, но это не помогает с двоичной частью. Если бы я мог прочитать эти файлы и разобрать написанные мною большие двоичные объекты, у меня, по сути, была бы возможность воспроизведения, которая мне нужна, но я ничего не могу найти в этом формате файла.

Спасибо, Пол

1 Ответ

8 голосов
/ 12 октября 2009

Ну, 15 минут, чтобы ответить на мой собственный вопрос. Должно быть, какая-то запись, но я клянусь, я потратил полдня на поиски этого ...:)

Функции OpenTrace / ProcessTrace / CloseTrace позволяют вам получать события либо из сеанса трассировки в реальном времени, либо из файла журнала ETL, и, похоже, это именно то, что я искал.

...