Я пытаюсь настроить простой пример 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 для этого сценария на локальном компьютере? Если да, то что мне не хватает в моей конфигурации или коде?
Консольный процесс запущен от имени администратора, и у этой учетной записи есть доступ к группе «Пользователи журнала производительности» и «Мониторы журнала производительности».