好奇是否有人有在进程外使用 EventFlow 的经验?文档表明它是为使用进程内(与被监视的内容相关)而构建的,但我希望在单独的进程(Service Fabric 服务)中运行它并监视来自运行在同一进程上的许多其他 Service Fabric 服务的 EventSource 输入机器。
这样做的原因之一是,我想确保捕获在服务异常且即将终止时写入的 ETW 事件。目前,在崩溃的同一进程中运行的 EventFlow 仅偶尔能够将事件写入其输出(在本例中为事件日志)也就不足为奇了。
谢谢,汉斯
好奇是否有人有在进程外使用 EventFlow 的经验?文档表明它是为使用进程内(与被监视的内容相关)而构建的,但我希望在单独的进程(Service Fabric 服务)中运行它并监视来自运行在同一进程上的许多其他 Service Fabric 服务的 EventSource 输入机器。
这样做的原因之一是,我想确保捕获在服务异常且即将终止时写入的 ETW 事件。目前,在崩溃的同一进程中运行的 EventFlow 仅偶尔能够将事件写入其输出(在本例中为事件日志)也就不足为奇了。
谢谢,汉斯
是的你可以。只需使用 EventSource 的名称配置 ETW 输入。
从文档:
此输入从 Microsoft Event Tracing for Windows (ETW) 提供程序中捕获数据。支持基于清单的提供程序以及基于托管 EventSource 基础结构的提供程序。数据在机器范围内捕获
确保使用 EventFlow 捕获事件的服务与发出事件的服务在同一节点上运行。最好的办法是让它成为一个 InstanceCount 为 -1 的无状态服务,这样它就可以在每个节点上运行。
请注意,如果此日志服务在某个节点上失败,则在该节点恢复之前不会在该节点上捕获任何事件。所以我想它最好用作备份或其他东西。