Использование EventFlow для мониторинга события ETW на локальном компьютере

Я пытаюсь настроить простой пример ETW и EventFlow, который позволяет отслеживать конкретных поставщиков ETW. . В этом случае поставщик службы ETW диспетчера управления отслеживает, когда выдаются сообщения о запуске и остановке службы.

У меня есть следующая конфигурация ввода для трассировки и ETW.

  "inputs": [
{
  "type": "Trace",
  "traceLevel": "Warning"
},
{
  "type": "ETW",
  "providers": [
    {
      "providerName": "Service Control Manager"
    }
  ]
}]

У меня есть следующий код, который запускает мониторинг с помощью EventFlow.

static void Main(string[] args)
    {
        using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
        {
            System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
            Console.ReadLine();
        }
    }

Событие трассировки появляется в консоли, но когда я запускаю и останавливаю службу, события ETW не появляются.

Предназначен ли EventFlow для этого сценария на локальном компьютере? Если да, то что мне не хватает в моей конфигурации или коде?

Консольный процесс запущен от имени администратора, и у этой учетной записи есть доступ к группе «Пользователи журнала производительности» и «Мониторы журнала производительности».


person Adrian Russell    schedule 02.09.2017    source источник


Ответы (1)


Если вы хотите прослушивать события ETW из диспетчера управления службами, вам необходимо прослушивать поставщика с именем Microsoft-Windows-Services.

Вот что у меня есть в моем eventFlowConfig.json

{
"inputs": [
    {
    "type": "ETW",
    "providers": [
        { "providerName": "Microsoft-Windows-Services" }
    ]
    }
],
"filters": [],
"outputs": [
    { "type": "StdOutput" }
],
"schemaVersion": "2016-08-11",
"extensions": []
}

Чтобы убедиться, что это работает, я остановил и запустил службы SQL Server. События выводились в консоль, как и ожидалось.

В качестве дополнительной проверки работоспособности вы можете использовать средство просмотра Diagnostic Events Visual Studio для прослушивания событий ETW. Запустите средство просмотра, щелкните шестеренку для настройки, добавьте имя поставщика в список поставщиков ETW и примените. Теперь вы сможете видеть одни и те же события как в средстве просмотра, так и в консольном приложении.

person Stringfellow    schedule 11.10.2017
comment
Наконец-то у меня получилось попробовать это, сработало как шарм. Упоминание средства просмотра диагностических событий в качестве проверки работоспособности было действительно полезным. - person Adrian Russell; 24.11.2017