【问题标题】:Consuming LTTng events in a .NET Core app在 .NET Core 应用程序中使用 LTTng 事件
【发布时间】:2019-07-11 04:31:42
【问题描述】:

我有一个 .NET Core 应用程序,我想设置它来监听 LTTng 事件,但我几乎没有找到任何文档说明如何在 C# / 代码中实际执行此操作。 NET 核心。我已经读过很多关于 Linux 上的 the CoreCLR team has taken a bet on LTTng being their primary tracing solution 的文章(而 ETW 是 Windows 上自然存在的解决方案),但在任何方向上还没有任何方向可以采用代码。另一方面,在代码中将应用程序设置为 ETW 侦听器非常容易(并且有据可查)(例如,this 只是众多示例之一)。

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

任何帮助将不胜感激!

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

【问题讨论】:

    标签: c# .net linux .net-core lttng


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-21
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多