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

no-std eventheader_dynamic

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

8 releases

0.3.5 Feb 27, 2024
0.3.4 Nov 27, 2023
0.3.3 Aug 23, 2023
0.3.2 Jul 24, 2023
0.1.0 May 9, 2023

#373 in Unix APIs

Download history 5/week @ 2023-11-27 1/week @ 2023-12-18 41/week @ 2024-01-15 13/week @ 2024-01-29 10/week @ 2024-02-05 22/week @ 2024-02-12 47/week @ 2024-02-19 270/week @ 2024-02-26 3/week @ 2024-03-04 92/week @ 2024-03-11

413 downloads per month
Used in opentelemetry-user-events…

MIT license

225KB
2.5K SLoC

EventHeader for Rust

Crates.io Documentation MIT licensed Build Status maintenance status

The eventheader_dynamic crate provides a flexible way to log EventHeader-encoded Tracepoints via the Linux user_events system. The events can be generated and collected on Linux 6.4 or later (requires the user_events kernel feature to be enabled, the tracefs or debugfs filesystem to be mounted, and appropriate permissions configured for the /sys/kernel/.../tracing/user_events_data file).

This "dynamic" implementation is more flexible than the implementation in the eventheader crate. For example, it supports runtime-defined schema and can easily log arrays of strings. However, it is harder to use, it has higher runtime costs, and it depends on the alloc crate. This dynamic implementation is intended for use only when the set of events cannot be determined at compile-time. For example, eventheader_dynamic might be used to implement a middle-layer library providing tracing support to a scripting language like JavaScript or Python. In other cases, use the eventheader crate instead of this crate.

Dependencies