Использование EventFlow для мониторинга событий ETW из других процессов Service Fabric

Любопытно, если у кого-то есть опыт использования EventFlow вне процесса? Документация предполагает, что он создан для использования в процессе (в отношении того, что отслеживается), но я надеялся запустить его в отдельном процессе (служба Service Fabric) и отслеживать входные данные EventSource из ряда других служб Service Fabric, работающих на том же машина.

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

Спасибо Ганс

1 ответ

Да, ты можешь. Просто настройте вход ETW, используя имя вашего EventSource.

Из документов:

Этот вход захватывает данные от поставщиков Microsoft Event Tracing для Windows (ETW). Поддерживаются как провайдеры на основе манифеста, так и провайдеры на основе управляемой инфраструктуры EventSource. Данные собираются в масштабе всей машины

Убедитесь, что ваш сервис, который захватывает события с помощью EventFlow, работает на том же узле, что и сервис, который генерирует события. Лучше всего сделать так, чтобы служба без сохранения состояния с InstanceCount равной -1, чтобы она работала на каждом узле.

Имейте в виду, что в случае сбоя этой службы ведения журналов на узле никакие события не регистрируются на этом узле, пока он не будет восстановлен. Поэтому я полагаю, что лучше всего использовать его в качестве резервной копии или чего-то еще.

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