将 ETW 事件发送到 Application Insights?

3

我有一些遗留代码,托管在 Azure WebJob (.exe) 中,为了记录到自定义事件提供程序,正在生成大量的 ETW 事件。

有什么简单方法可以将这些 ETW 事件轻松地传输到 Application Insights 中吗?我希望它们能够出现在同一 AI 实例中,该实例托管着我的网站和 WebJob。

1个回答

2
这是一个简单的事件源跟踪模块示例。 https://github.com/AlexBulankou/ai-samples/blob/master/ETWTrackingModule.cs 该模块包装了订阅已配置事件源的ETW侦听器。您可以指定要订阅哪些事件源,以及是否希望将您的ETW事件作为跟踪事件和/或跟踪记录。在您的ApplicationInsights.config中,注册此模块,如下所示:
 <Add Type="Microsoft.ApplicationInsights.Samples.ETWTrackingModule, YourAssemblyName">
  <TrackEvent>True</TrackEvent>
  <TrackTrace>True</TrackTrace>
  <EventSources>
    <Add Name="System.Collections.Concurrent.ConcurrentCollectionsEventSource" EventLevel="LogAlways"/>
    <Add Name="System.Diagnostics.Eventing.FrameworkEventSource" EventLevel="LogAlways"/>
  </EventSources>
</Add>

我该如何将ApplicationInsights.config和NuGets添加到我的WebJob中?它只是WebJob中的一个.exe文件,我无法修改代码。另外,我该如何指定要记录到应用程序洞察的ETW提供程序? - Lee G.
我在回答中假设您可以通过安装Nuget包并重新部署控制台应用程序作为Azure Web作业来启用Application Insights。这不是这种情况吗? - Alex Bulankou
由于我不能修改可执行文件的原始代码,所以我真的不知道如何让这个工作起来。无论如何感谢您的帮助。 - Lee G.
我知道您不能修改代码并重新部署,但是您能否使用Kudu控制台将其他文件(二进制文件和AppInsights.config)放入Web作业文件夹中? - Alex Bulankou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接