beyla icon indicating copy to clipboard operation
beyla copied to clipboard

Remove the need for BPFS in Beyla

Open grcevski opened this issue 5 months ago • 0 comments

BPF FS is the main reason we need to run privileged containers in Kubernetes and elsewhere. The main reason we use BPF FS is to share data between the different BPF programs. For example, we have separate gRPC and HTTP programs for Go and if we wanted to find parent requests between the two we must use pinned BPF maps. One way to eliminate this problem is to use a single BPF program for Go and single BPF program for non-Go. It will mean we have to merge the tracers into single program tracers, work with include headers instead of C files. One thing that will not work in this mode is black-box context propagation between Go and non-Go, but we can work around that by implementing the TCP packet propagation.

  • [x] Unify Go probes in a unique Go tracer.
  • [x] #1158
  • [x] #1159
  • [ ] #1212
  • [ ] #1213
  • [ ] Remove pinning in bpf_dbg.h.
  • [ ] Remove pinning for Go tracer.
  • [ ] Remove pinning for nodejs tracer.
  • [ ] Remove pinning for generic HTTP tracer.

grcevski avatar Sep 09 '24 23:09 grcevski