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

4
我有一个.NET Core应用程序,希望设置为监听LTTng事件,但是在C# / .NET Core中实际编写代码方面,我发现几乎没有文档。我了解到CoreCLR团队已经在Linux上选择了LTTng作为其主要跟踪解决方案(而ETW是Windows上的自然现有解决方案),但目前还没有任何关于代码实现的方向。另一方面,通过编写代码很容易(并且有很好的文档)将应用程序设置为ETW监听器(例如this只是众多示例之一)。

有没有人做过这个,或者看到任何好的文档?在.NET Core的Linux世界中,同样的库/包/nugets是否仍然适用(即是否需要像在Windows上一样设置带有相关TraceEvent解析器的TraceEventSession来处理TraceEvent,还是需要不同的方向/包?)

任何帮助都将不胜感激!

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

1个回答

0
据我所知,.NET Core 没有接收 LTTng 事件的 API。但是自从 .NET Core 2.2 版本以来,您可以使用 EventListener 监听同一进程中 CLR 生成的事件。您可以在这里找到说明。
如果您不仅需要进程内事件,则应编写一些 C/C++ 原生代码,使用 liblttng-ctl(有关详细信息,请参见https://github.com/lttng/lttng-tools)和 Babeltrace 2 C API

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