Presentation: Monitoring Microservices With BPF
Abstract
Anyone responsible for increasingly complex, distributed applications, knows that observability is critical to keeping applications happy and healthy. Once your team embraces a microservice design that exceeds a handful of services, seemingly easy questions like what part of your system is misbehaving can become complex debugging exercises. And harder questions like whether the problem exists in your application or infrastructure can stop your team in its tracks.
This talk will explain how you can use BPF (Berkeley Packet Filter) to peek inside the Linux network stack to understand how containers are behaving. Without adding any instrumentation to the application, BPF makes it possible to capture service dependencies, rate/error/latency metrics, and network health.
We will show you how to navigate the different Linux subsystems with your own BPF programs to trace the voyage of connections and correlate them with container metadata from Docker or Kubernetes. Finally, we’ll look at how this data can be used to diagnose hard-to-measure, production issues like DNS failures quickly and easily.