Which Container Ate My Bandwidth? An eBPF Answer
Your VM's network traffic suddenly spikes.
Monitoring shows the increase, but not who's responsible. Docker stats gives partial answers. Traditional infrastructure dashboards tell you that bandwidth is being consumed, but not which container is consuming it or where the traffic is going.
This talk explores how eBPF can provide container-level network attribution directly from the Linux kernel.
Using cgroup_skb programs written in Go, I built a container network observer that tracks every byte sent and received by individual containers, broken down by remote IP address. No sidecars. No agents inside containers. No Docker API polling. Just kernel-level visibility and real-time network accounting.
We'll cover:
• Why existing observability tools struggle with per-container network attribution
• How eBPF cgroups provide accurate network visibility at the container boundary
• The architecture behind a production-ready monitoring tool written entirely in Go
• Challenges encountered while working with eBPF maps, cgroups, and container runtimes
• Lessons learned from turning a real infrastructure incident into a practical debugging tool
If you've ever looked at a bandwidth graph and wondered, "Which container actually caused this?", this session will show how to find the answer directly from the kernel.