10 releases (breaking)
0.8.0 | Nov 26, 2024 |
---|---|
0.6.0 | Sep 30, 2024 |
0.5.0 | Jul 16, 2024 |
0.3.0 | Feb 27, 2024 |
0.1.0 | Jul 29, 2023 |
#145 in Unix APIs
197 downloads per month
35KB
478 lines
OpenTelemetry Metric Exporter for Linux user_events
This crate contains a Metric Exporter to export metrics to Linux user_events, which is a solution for user process tracing, similar to ETW (Event Tracing for Windows) on Windows. It builds on top of the Linux Tracepoints, and so allows user processes to create events and trace data that can be viewed via existing tools like ftrace and perf.
This kernel feature is supported started in Linux kernel 5.18 onwards. The feature enables
- A faster path for tracing from user mode application utilizing kernel mode memory address space.
- User processes can now export telemetry events only when it is useful i.e, when the registered set of tracepoint events are enabled.
This user_events exporter enables applications to use OpenTelemetry API to capture the telemetry events, and write to user_events subsystem. From user_events, the events can be
- Captured by the agents running locally, and listening for specific events within user_events subsystem.
- Or real-time monitoring using local Linux tool like perf or ftrace.
OpenTelemetry Overview
OpenTelemetry is an Observability framework and toolkit designed to create and manage telemetry data such as traces, metrics, and logs. OpenTelemetry is vendor- and tool-agnostic, meaning that it can be used with a broad variety of Observability backends, including open source tools like [Jaeger] and [Prometheus], as well as commercial offerings.
OpenTelemetry is not an observability backend like Jaeger, Prometheus, or other commercial vendors. OpenTelemetry is focused on the generation, collection, management, and export of telemetry. A major goal of OpenTelemetry is that you can easily instrument your applications or systems, no matter their language, infrastructure, or runtime environment. Crucially, the storage and visualization of telemetry is intentionally left to other tools.
Dependencies
~6–13MB
~142K SLoC