beyla
beyla copied to clipboard
Remove the need for BPFS in Beyla
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.