Как просмотреть события ETW, созданные EventSource с помощью анализатора производительности Windows?

Я хотел бы запустить события ETW, используя EventSource и просматривать их с помощью анализатора производительности Windows.

у меня есть базовый EventSource:

[EventSource(Name = "BasicEventSource")]
public class ETWLogger : EventSource
{
#if DEBUG
    private const bool ThrowOnError = true;
#else
    private const bool ThrowOnError = false;
#endif

    private ETWLogger(bool throwOnError) : base(throwOnError) { }

    private static ETWLogger _log;
    public static ETWLogger Log
    { get { return _log ?? (_log = new ETWLogger(ThrowOnError)); } }

    private static class Keywords
    {
        public const EventKeywords Perf = (EventKeywords) 1;
    }

    [Event(1, Keywords = Keywords.Perf, Level = EventLevel.Informational)]
    public void Startup() { WriteEvent(1, "StartUp"); }
}

когда я записываю с помощью Windows Performance Recorder (WPR), я не вижу своего поставщика или события в общем графике событий Windows Performance Analyzer (WPA).

Спасибо за ваше время :)

3 ответов


WPR ничего не знает о вашем обычае EventSource, поэтому вам нужно создать профиль записи, чтобы вы могли его включить. WPT поставляется с несколькими образцами профилей, которые должны помочь вам начать работу.

версия 8.1 WPR поддерживает то же соглашение об именах, что и PerfView, что означает, что вы можете использовать *YourEventSource вместо GUID в профиле.

по моему опыту некоторые EventSource функции не поддерживаются в версии 8.1 WPA. Е. Г. если вы используете задачи, которые они не будут отображаться правильно. Однако, основное использование EventSource хорошо работает с версией 8.1 WPA / WPR при создании профиля записи для вашего EventSource.

другой вариант-собрать трассировку с помощью PerfView и проанализировать ее с помощью WPA (если вы предпочитаете это PerfView).


зацените демо-уроке. Также можно найти еще одну демо-версию здесь, начало 00:38: 39.


WPR и WPA не поддерживают EventSource, но делают с новым 8.1 ADK. См.здесь.