Welcome to the repository for the "Learn You Some eBPF for Greater Good" workshop! This hands-on tutorial series guides you through the process of building your own Go profiler, starting from scratch, and evolving it into an agent capable of profiling all applications in a Kubernetes cluster.
The first part of the workshop gets you acquainted with essential components of eBPF and Go, laying the groundwork to build your very own profiler. We start with the basics of ELF and DWARF, then incrementally enhance the profiler with stack traces, function names, and line numbers. You'll also gain a good understanding of how your code operates at a low level, helping you spot potential areas for optimization.
Start the first part of the workshop here - https://killercoda.com/wozniakjan/course/killercoda/part1.
In the second part of our workshop, we kick things up a notch! We'll take our simple profiler and transform it into a powerful agent capable of profiling all (Go) applications within a Kubernetes cluster. This section will boost your understanding of system-wide profiling and Kubernetes interaction, equipping you with the tools to optimize applications at scale.
Jump into the second part of the workshop here - https://killercoda.com/wozniakjan/course/killercoda/part2.