4

我有一个 .NET Core 应用程序,我想设置它来侦听LTTng事件,但我几乎没有找到任何关于如何在 C# / .NET Core 代码中实际执行此操作的文档。我已经读过很多关于CoreCLR 团队如何押注 LTTng 作为他们在 Linux 上的主要跟踪解决方案(而 ETW 是 Windows 上自然现存的解决方案)的文章,但在任何方向上都没有这可能在代码中采用的任何方向。另一方面,将应用程序设置为代码中的 ETW 侦听器非常容易(并且有充分的文档记录)(例如,只是无数示例之一)。

有没有人有这样做的经验,或者看过任何好的文档?相同的库/包/nugets 是否仍然适用于 .NET Core 上的 Linux 世界(即,我是否需要像在 Windows 中一样设置一个与TraceEventSessions 相关联的操作,或者是否需要不同的方向/包集? Linux)?TraceEventParsersTraceEvent

任何帮助将不胜感激!

注意:我不想使用该lttng工具本身进行跟踪,但想将侦听构建到 .NET Core 应用程序本身中。

4

1 回答 1

0

据我所知,.NET Core 中没有用于接收 LTTng 事件的 API。但从 .NET Core 2.2 开始,您可以使用EventListener在同一进程中侦听 CLR 生成的事件。您可以在此处找到说明。

如果您不仅需要进程内事件,那么您应该使用liblttng-ctl(有关详细信息,请参阅https://github.com/lttng/lttng-tools)和Babeltrace 2 C API在 C/C++ 中编写一些本机代码。

于 2020-09-04T15:19:25.300 回答