eBPF is a Linux kernel extension mechanism for running verified, sandboxed programs inside the kernel. It exposes this capability to user space through the bpf(2) system call, allowing user-space functionality to respond to kernel or application events and collect telemetry without modifying application code. section 6.2.2 section 9.1.2 section 4.3.1
eBPF commonly supports observability workflows by:
- Collecting fine-grained metrics, traces, profiles, and other telemetry without manual instrumentation or service redeploys. section 6.2.2
- Automating profile collection from application code or the operating system for continuous profiling and flame-graph analysis. section 9.1.2 section 9.4
- Extending Linux safely while retaining operational constraints: kernel support, debug symbols, provider policies, and production performance considerations still matter. section 9.1.2 section 4.3.1
Kubernetes debugging with Pixie
Pixie uses eBPF to collect real-time Kubernetes telemetry, including fine-grained request data, without code changes or redeploys. Users query the in-memory data with PxL and can export telemetry to an OpenTelemetry-compatible endpoint for longer-term retention; Pixie itself does not provide historical storage by design. section 6.2.2
Figure 9.3 The eBPF call flow in the Linux kernel at a conceptual level (Source: Brendan Gregg. Licensed under CC BY 4.0)
Use the conceptual call-flow figure to relate event-triggered eBPF programs to kernel-level profile collection. section 9.1.2

