Skip to content

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

@lalitb

Description

@lalitb

Pre-filing checklist

  • I searched existing issues and didn't find a duplicate

Component(s)

Rust OTAP dataflow (rust/otap-dataflow/)

Is your feature request related to a problem?

Summary

Add a receiver for application telemetry emitted through Linux user_events tracepoints.

This receiver targets telemetry emitted by applications through Linux user_events tracepoints. It is not intended for generic kernel/host event collection or Linux perf/profile ingestion.

Motivation

For applications running on the same Linux host as the collector, user_events provides a native tracepoint-based event path through the Linux tracing/perf stack. Events can be consumed from kernel-managed per-CPU ring buffers via perf_event_open, avoiding the local TCP/UDP/HTTP/gRPC stack. This offers lower-overhead, lower-latency same-host ingestion with bounded in-kernel buffering, but not durable persistence.

Producer compatibility anchor:

Related decoding surface:

This proposal is to add this as part of contrib-nodes crate under feature flag.

Data flow:

flowchart TB
    A[Application A threads]
    B[Application B threads]
    C[Application C threads]

    U[Linux user_events tracepoint writes]

    A --> U
    B --> U
    C --> U

    R0[CPU 0 perf ring buffer]
    R1[CPU 1 perf ring buffer]
    R2[CPU 2 perf ring buffer]
    RN[CPU N perf ring buffer]

    U --> R0
    U --> R1
    U --> R2
    U --> RN

    P0[df-engine pipeline 0<br/>pinned to CPU 0<br/>Receiver → Processors → Exporters]
    P1[df-engine pipeline 1<br/>pinned to CPU 1<br/>Receiver → Processors → Exporters]
    P2[df-engine pipeline 2<br/>pinned to CPU 2<br/>Receiver → Processors → Exporters]
    PN[df-engine pipeline N<br/>pinned to CPU N<br/>Receiver → Processors → Exporters]

    R0 --> P0
    R1 --> P1
    R2 --> P2
    RN --> PN
Loading

Proposed Solution

  • As above

Alternatives Considered

  • N/A

Additional Context

  • N/A

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions