繁体   English   中英

在 .NET Core 应用程序中使用 LTTng 事件

[英]Consuming LTTng events in a .NET Core app

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

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

任何帮助将不胜感激!

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM