~/talk

"Auto-Instrumenting Rust Applications Using eBPF and OpenTelemetry"

Talkat RustConf 2025 · 2025-09-02..09-05· [observability, rust]
links:none on file
slides:none on file

A Rust eBPF pipeline loads kernel probes (using libbpf-rs), attaches uprobe/uretprobe to function entry/exit, generates trace IDs and span IDs in-kernel, writes completed spans to a ring buffer, and a user-space loader reads them and exports OTLP/OpenTelemetry spans. It reliably auto-instruments synchronous native functions across Rust and C++ on Linux without changing app code, but async Rust (Tokio task hops) and HTTP header injection for distributed context remain unsolved—bpf_probe_write_user is removed so level‑7 propagation and safe user-memory mutation currently fail.

AI-written summary · about

  1. 0:00Introduction to telemetry
  2. 0:21Speaker background
  3. 2:20OpenTelemetry overview
  4. 6:11Telemetry in Rust
  5. 9:14Need for auto-instrumentation
  6. 11:52Understanding eBPF
  7. 17:23eBPF ecosystems for Rust
  8. 21:29Implementation via uprobes
  9. 25:58Challenges with async tracing
  10. 31:14Context propagation hurdles
  11. 37:16Requirements and limitations
  12. 38:12State of the ecosystem and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.