Skip to content

Add Linux user_events receiver#2787

Merged
jmacd merged 35 commits into
open-telemetry:mainfrom
lalitb:split/user-events-receiver-only
May 13, 2026
Merged

Add Linux user_events receiver#2787
jmacd merged 35 commits into
open-telemetry:mainfrom
lalitb:split/user-events-receiver-only

Conversation

@lalitb
Copy link
Copy Markdown
Member

@lalitb lalitb commented Apr 30, 2026

Change Summary

Split out from the original combined PR #2717.

Adds a contrib receiver for Linux user_events tracepoints.

The receiver supports two decode formats:

  • tracefs: generic Linux tracepoint decoding based on the static schema exposed in tracefs format files.
  • event_header: decodes self-describing EventHeader payloads. EventHeader comes from the Microsoft LinuxTracepoints-Rust project, but is open and usable by any producer.

The receiver uses one_collect for perf/user_events collection, and supports single or multiple subscriptions, batching, late registration, and basic receiver metrics. It is behind the userevents-receiver feature flag.

Also adds a Linux CI smoke test that registers and reads both tracefs and EventHeader user_events tracepoints when kernel support is available.

What issue does this PR close?

How are these changes tested?

Added Linux CI smoke test

Are there any user-facing changes?

Yes, a receiver.

@lalitb lalitb marked this pull request as ready for review April 30, 2026 06:40
@lalitb lalitb requested a review from a team as a code owner April 30, 2026 06:40
@github-actions github-actions Bot added rust Pull requests that update Rust code ci-repo Repository maintenance, build, GH workflows, repo cleanup, or other chores labels Apr 30, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

❌ Patch coverage is 69.20449% with 631 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.90%. Comparing base (b645a26) to head (bacaf90).

❌ Your patch check has failed because the patch coverage (69.20%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2787      +/-   ##
==========================================
- Coverage   86.03%   85.90%   -0.13%     
==========================================
  Files         720      725       +5     
  Lines      273264   275313    +2049     
==========================================
+ Hits       235095   236521    +1426     
- Misses      37645    38268     +623     
  Partials      524      524              
Components Coverage Δ
otap-dataflow 87.03% <69.20%> (-0.16%) ⬇️
query_abstraction 80.61% <ø> (ø)
query_engine 89.57% <ø> (ø)
otel-arrow-go 52.45% <ø> (ø)
quiver 92.25% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread rust/otap-dataflow/crates/contrib-nodes/README.md Outdated
Comment thread rust/otap-dataflow/crates/contrib-nodes/src/receivers/mod.rs Outdated
Comment thread rust/otap-dataflow/crates/contrib-nodes/Cargo.toml Outdated
Comment thread rust/otap-dataflow/crates/contrib-nodes/Cargo.toml
Copy link
Copy Markdown
Contributor

@jmacd jmacd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Partial review. This is super!

Comment thread .github/workflows/rust-ci.yml Outdated
Comment thread .github/workflows/rust-ci.yml
Co-authored-by: Utkarsh Umesan Pillai <66651184+utpilla@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@utpilla utpilla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM overall. I left a comment about including the smoke test in rust-required-status-check.

Thanks for working on this @lalitb! Great work!

…ecoder coverage, require user_events_linux_smoke in CI
@lalitb
Copy link
Copy Markdown
Member Author

lalitb commented May 11, 2026

LGTM overall. I left a comment about including the smoke test in rust-required-status-check.

Thanks for working on this @lalitb! Great work!

Thanks @utpilla for the thorough review! Addressed all remaining points in e01f767

Comment thread rust/otap-dataflow/configs/user-events-tracefs-debug.yaml
Comment thread rust/otap-dataflow/configs/user-events-tracefs-debug.yaml
Comment thread rust/otap-dataflow/crates/contrib-nodes/src/receivers/user_events_receiver/mod.rs Outdated
@lalitb
Copy link
Copy Markdown
Member Author

lalitb commented May 13, 2026

@copilot resolve the merge conflicts in this pull request

Copy link
Copy Markdown
Contributor

@jmacd jmacd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great to see. I would request that for the many TODOs in this code that we open issues to explain -- I'm curious for more information about them all.

@jmacd jmacd enabled auto-merge May 13, 2026 17:43
@jmacd jmacd added this pull request to the merge queue May 13, 2026
Merged via the queue into open-telemetry:main with commit 4fced8c May 13, 2026
85 of 86 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-repo Repository maintenance, build, GH workflows, repo cleanup, or other chores rust Pull requests that update Rust code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Proposal: Add Linux user_events Receiver for Telemetry from Applications Co-Located with the Collector

7 participants