Rewriting the Control Plane of BCC Tools in Golang
Inspektor Gadget is a tool to debug and introspect Kubernetes resources and applications. It’s written in Golang and uses eBPF as the building technology to get information from the host. Originally, Inspektor Gadget was a wrapper around different BCC tools: we executed the Python scripts and parsed their output. Then we realized this approach did not scale and was inflexible. For this reason, we decided to rewrite the control plane of such tools directly in Golang, making it possible to use those tools directly from our code base without having to execute an external process.