A talk I gave at Cloud Native eBPF Day NA 2024, co-located with KubeCon NA 2024 in Salt Lake City, on migrating Kepler's eBPF probes from BCC to modern, ahead-of-time compiled, multi-platform programs.

Video

Abstract

Kepler (Kubernetes-based Efficient Power Level Exporter) is a CNCF project focused on measuring the environmental impact of software. At its core, Kepler uses eBPF to gather metrics from the Linux kernel, which feed into an ML model that estimates power consumption for processes, VMs, and Pods.

Kepler needed to migrate its old eBPF probes developed with BCC to probes that are compiled ahead of time. Maybe you do too? While performing this migration we were able to leverage modern eBPF features, the cilium/ebpf Go library, and bpf2go to make our probes multi-platform.

By the end of this session, you'll gain a deeper understanding of eBPF, practical insights into its application in power consumption monitoring, and strategies for modernizing existing eBPF programs — with actionable best practices you can apply to your own projects.