使用 LINQPad 5 + TX(LINQ to Traces)使用服务结构本地集群 ETW 事件的指南?

Guidance to consume service fabric local cluster ETW events using LINQPad 5 + TX (LINQ to Traces)?

我在调试本地 Service Fabric 集群时试图查看“诊断事件”选项卡中显示的相同消息。可以直接保存,也可以保存到 etl 文件后。

我使用服务结构有状态服务模板时创建的 ServiceEventSource class 发送了自定义日志消息。当 运行 服务处于调试模式时,我可以在诊断事件选项卡中清楚地看到日志消息。

我尝试使用 LinqPad,这很好,但我似乎无法 A) 找到会话的名称,或 B) 在调试我的服务时找到任何 .etl 文件的保存位置织物服务。我还尝试使用 PerfView 来捕获和创建 .etl 文件。我使用“机器范围”进行焦点处理,并将 etl 数据发送到我的桌面。我保留了默认的 500mb 文件,在 Visual Studio 诊断事件选项卡中看到消息之前我没有点击它。然后我停止了 PerfView,将 .etl 文件加载到能够解析的 LinqPad 中,但我找不到诊断事件选项卡中显示的任何事件。不过,我确实看到了很多系统范围的消息——所以 PerfView 确实收集了一些东西。

我希望收集事件数据,或使用 LinqPad 和 TX 扩展(理想情况下)对其进行流式传输。但是我是 ETW 的新手,我不清楚如何设置流,或收集数据并将其保存到 .etl 文件中。

我能够收集到这些数据。使用 PerfView 时,我可以过滤“其他提供者”。我发现通过“提供者浏览器”搜索时找不到与我的项目匹配的提供者名称。但是,我手动输入了提供程序的名称,该名称在继承自 EventSource 的 class 中找到:[EventSource(Name = "My.Provider.Name.Here")]。开始收集 运行 应用程序并检查结果后,我发现我的日志消息已被收集。或许这些信息会帮助另一个正在尝试做同样事情的人。