Unleashing the Go Toolchain
Talks · · 1 min

talk: Unleashing the Go Toolchain

The -toolexec flag hides a super-power in the Go toolchain: it lets you turn every go build into a programmable pipeline. In this session we’ll reveal how a simple wrapper command can inject custom analysis, code generation, and instrumentation—without changing a line of application code. You’ll see how platform and tooling teams use -toolexec to weave organisation-wide practices directly into the build, from enforcing error-handling standards to automatically adding observability hooks. We’ll map the journey from a “hello-world” wrapper to full Aspect-Oriented compile-time transformations, and discuss the trade-offs that come with this new power. ...

August 14, 2025 · 1 min · 187 words · Kemal Akkoyun
Profiling Python with eBPF: A New Frontier in Performance Analysis
Talks · · 2 min

talk: Profiling Python with eBPF: A New Frontier in Performance Analysis

Most Python profilers ask you to decide in advance. You import something, or you wrap the process, or you restart it with a flag. That works on your laptop and helps little at 3 a.m., when the profile you want is of a process that has already been running for six hours. eBPF changes the bargain. An agent samples from the kernel on a timer, and the application never knows it is there. For compiled code that is close to free: read the registers, walk the frames, resolve the addresses against DWARF. Python is where it stops being easy. ...

February 4, 2024 · 2 min · 314 words · Kemal Akkoyun
Prometheus Updates and Deep Dive
Talks · · 1 min

talk: Prometheus Updates and Deep Dive

Prometheus is the second-oldest project in the CNCF and the default answer for metrics in Kubernetes. Which means most people meet it already running, configured by someone who has since left, and never get a chance to ask how the thing works. This is the maintainer track session for people in that position. We start from the beginning for anyone who has only ever touched Prometheus through a Grafana panel: what it scrapes, what it keeps, and what the query engine is actually doing while your dashboard spins. Then we go under the covers into the storage layer, the write path, and the places the memory tends to go. ...

April 19, 2023 · 1 min · 196 words · Kemal Akkoyun
Best Practices and Pitfalls of Instrumenting Your Cloud-Native Application
Talks · · 1 min

talk: Best Practices and Pitfalls of Instrumenting Your Cloud-Native Application

Observability is crucial for understanding how your application operates in real-time. Among various observability signals—such as logs, traces, and continuous profiling—metrics play a significant role. They provide sampled measurements throughout the system, essential for ensuring service quality, improving performance, scalability, debuggability, security, and enabling real-time, actionable alerting. Building observable applications begins with proper instrumentation. While Prometheus tooling simplifies this process, there are still numerous opportunities for mistakes or misuse. In this talk, Jéssica Lins and Kemal Akkoyun present several useful patterns, best practices, and idiomatic methods for instrumenting critical services. They discuss common pitfalls, failure cases, and instrumentation strategies, sharing valuable insights and methods to avoid these mistakes. Additionally, they provide tips for writing simple, maintainable, and robust instrumentation facilities using real-life examples. The talk also demonstrates how to enrich metrics by correlating them with other observability signals and discusses how to best use recent changes in client_golang, the Go client library for Prometheus. ...

November 8, 2022 · 1 min · 170 words · Kemal Akkoyun
eBPF? Safety First!
Talks · · 1 min

talk: eBPF? Safety First!

eBPF being a promising technology is no news. And C is the defacto choice for writing eBPF programs. The act of writing C programs in an error-prone process. Even the eBPF verifier makes life a lot easier; it is still possible to write unsafe programs and make trivial mistakes that elude the compiler but are detected by the verifier in the load time, which are preventable with compile-time checks. It is where Rust comes in. Rust is a language designed for safety. Recently the Rust compiler gained the ability to compile to the eBPF virtual machine, and Rust became an official language for Linux. We discover more and more use cases where eBPF can be helpful. We find more efficient ways to build safe eBPF programs that are parallel to these developments. We will demonstrate how we made applications combined with Rust in the data plane for more safety and Go in the control plane for a higher development pace to target Kubernetes for security, observability and performance tuning. ...

May 10, 2022 · 1 min · 181 words · Kemal Akkoyun