Использование EventFlow для мониторинга событий ETW из других процессов Service Fabric
Любопытно, если у кого-то есть опыт использования EventFlow вне процесса? Документация предполагает, что он создан для использования в процессе (в отношении того, что отслеживается), но я надеялся запустить его в отдельном процессе (служба Service Fabric) и отслеживать входные данные EventSource из ряда других служб Service Fabric, работающих на том же машина.
Одна из причин для этого заключается в том, что я хочу убедиться, что я записываю события ETW, записанные, когда служба исключается и собирается умереть. В настоящее время EventFlow, запущенный в том же процессе, что и сбой, не удивительно, что только иногда может записать событие в свой вывод (в данном случае журнал событий).
Спасибо Ганс
1 ответ
Да, ты можешь. Просто настройте вход ETW, используя имя вашего EventSource.
Из документов:
Этот вход захватывает данные от поставщиков Microsoft Event Tracing для Windows (ETW). Поддерживаются как провайдеры на основе манифеста, так и провайдеры на основе управляемой инфраструктуры EventSource. Данные собираются в масштабе всей машины
Убедитесь, что ваш сервис, который захватывает события с помощью EventFlow, работает на том же узле, что и сервис, который генерирует события. Лучше всего сделать так, чтобы служба без сохранения состояния с InstanceCount равной -1, чтобы она работала на каждом узле.
Имейте в виду, что в случае сбоя этой службы ведения журналов на узле никакие события не регистрируются на этом узле, пока он не будет восстановлен. Поэтому я полагаю, что лучше всего использовать его в качестве резервной копии или чего-то еще.