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

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

У меня есть следующая конфигурация ввода для трассировки и 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 предназначен для этого сценария на локальном компьютере? Если так, что мне не хватает в моей конфигурации или коде?

Процесс консоли выполняется от имени администратора, и учетная запись имеет доступ к группе "Пользователи журнала производительности" и "Мониторы журнала производительности".

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. События выводились в консоли, как и ожидалось.

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

Другие вопросы по тегам