#user-events #tracepoints #trace-logging #logging #trace #linux #eventheader

无标准库 eventheader_dynamic

Rust API for runtime-specified eventheader-encoded Linux Tracepoints via user_events

9个版本

0.4.0 2024年4月12日
0.3.5 2024年2月27日
0.3.4 2023年11月27日
0.3.3 2023年8月23日
0.1.0 2023年5月9日

#407 in Unix APIs

Download history 26/week @ 2024-04-14 4/week @ 2024-04-21 118/week @ 2024-05-12 134/week @ 2024-05-19 4/week @ 2024-05-26 52/week @ 2024-06-02 10/week @ 2024-06-09 78/week @ 2024-06-16 44/week @ 2024-06-23 4/week @ 2024-06-30 1/week @ 2024-07-07 124/week @ 2024-07-14 21/week @ 2024-07-21 87/week @ 2024-07-28

233 monthly downloads
Used in opentelemetry-user-events…

MIT license

200KB
2K SLoC

为Rust的EventHeader

Crates.io Documentation MIT licensed Build Status maintenance status

eventheader_dynamic crate提供了一种灵活的方式,通过Linux的user_events系统记录编码为EventHeader的Tracepoints事件。这些事件可以在Linux 6.4或更高版本上生成和收集(需要启用内核特性user_events,挂载tracefsdebugfs文件系统,并配置适当的权限以访问/sys/kernel/.../tracing/user_events_data文件)。

这种“动态”实现比eventheader crate中的实现更灵活。例如,它支持运行时定义的模式,并且可以轻松地记录字符串数组。然而,它更难使用,具有更高的运行时成本,并且依赖于alloc crate。这种动态实现仅在编译时无法确定事件集时才使用。例如,可以使用eventheader_dynamic来实现为JavaScript或Python等脚本语言提供跟踪支持的中间层库。在其他情况下,请使用eventheader crate,而不是这个crate。

依赖项