<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Talks on kakkoyun</title><link>https://kakkoyun.me/talks/</link><description>Recent content in Talks on kakkoyun</description><image><title>kakkoyun</title><url>https://kakkoyun.me/img/android-chrome-512x512.png</url><link>https://kakkoyun.me/img/android-chrome-512x512.png</link></image><generator>Hugo</generator><language>en</language><managingEditor>kakkoyun@gmail.com (Kemal Akkoyun)</managingEditor><webMaster>kakkoyun@gmail.com (Kemal Akkoyun)</webMaster><lastBuildDate>Tue, 07 Jul 2026 13:37:39 +0200</lastBuildDate><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><atom:link href="https://kakkoyun.me/talks/index.xml" rel="self" type="application/rss+xml"/><item><title>talk: How to Instrument Go Without Changing a Single Line of Code</title><link>https://kakkoyun.me/talks/how-to-instrument-go-without-changing-code/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/how-to-instrument-go-without-changing-code/</guid><description>Comparing eBPF, compile-time, runtime injection, and USDT approaches to zero-touch Go instrumentation — with benchmarks across 7 scenarios.</description><content:encoded><![CDATA[<p>Zero-touch observability for Go is finally becoming real. In this talk, we walk through the different strategies you can use to instrument Go applications without changing a single line of code, and what they cost you in terms of overhead, stability, and security.</p>
<p>We compare several concrete approaches and projects: eBPF-based auto-instrumentation using OpenTelemetry&rsquo;s Go auto-instrumentation agent and OBI (OpenTelemetry eBPF Instrumentation), compile-time manipulation using tools like Orchestrion and the OpenTelemetry Compile-Time Instrumentation SIG, runtime injection via Frida/ptrace, and USDT (User Statically-Defined Tracing) probes — both via libstapsdt and a custom Go runtime fork.</p>
<p>Beyond what exists today, we look at how ongoing work in the Go runtime and diagnostics tooling could unlock cleaner, safer hooks for future auto-instrumentation, including flight recording proposals and native USDT support in the Go toolchain.</p>
<p>Throughout the talk, we use benchmark results and small, realistic services to compare these strategies along three axes: performance overhead (latency, allocations, CPU impact), robustness and upgradeability across Go versions and container images, and operational friction (rollout complexity, debugging, and failure modes).</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/0TvrSebuDPk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/fosdem-2026/blob/main/presentation.md">Slides - Markdown</a></li>
</ul>
<p><strong>Demo/Code</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/fosdem-2026">fosdem-2026</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/track/go/">FOSDEM 2026 — Go Devroom</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=0TvrSebuDPk">Recording</a></li>
</ul>
</li>
</ul>
<p><strong>Related</strong></p>
<ul>
<li><a href="/posts/fosdem-2026-auto-instrumenting-go/">Auto-Instrumenting Go: From eBPF to USDT Probes</a> — full technical blog post expanding on this talk</li>
</ul>
]]></content:encoded></item><item><title>talk: How to Reliably Measure Software Performance</title><link>https://kakkoyun.me/talks/how-to-reliably-measure-software-performance/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/how-to-reliably-measure-software-performance/</guid><description>Why your benchmarks are probably lying to you — controlling hardware noise, statistical methods, and integrating performance into development workflows.</description><content:encoded><![CDATA[<p>Measuring software performance reliably is remarkably difficult. It&rsquo;s a specialized version of a more general problem: trying to find a signal in a world full of noise. A benchmark that reports a 5% improvement might just be measuring thermal throttling, noisy neighbors, or the phase of the moon.</p>
<p>In this talk, we walk through the full stack of reliable performance measurement — from controlling your benchmarking environment (bare metal instances, CPU affinity, disabling SMT and dynamic frequency scaling) to designing benchmarks that are both representative and repeatable. We cover the statistical methods needed to interpret results correctly (hypothesis testing, change point detection) and show how to integrate continuous benchmarking into development workflows so regressions are caught before they reach production.</p>
<p>Along the way, we share experiments demonstrating how environment control alone can reduce measurement variance by 100x, and practical tips for anyone who writes benchmarks — whether you&rsquo;re optimizing a hot loop or validating a system-wide change.</p>
<p>Co-presented with <a href="https://github.com/igoragoli">Augusto de Oliveira</a>.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/8211fNI_nc4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/igoragoli/fosdem-2026-software-performance/blob/main/presentation.md">Slides - Markdown</a></li>
</ul>
<p><strong>Demo/Code</strong></p>
<ul>
<li><a href="https://github.com/igoragoli/fosdem-2026-software-performance">fosdem-2026-software-performance</a> — includes Jupyter notebooks in <code>experiments/</code> with benchmark design and results interpretation visualizations</li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/track/software-performance/">FOSDEM 2026 — Software Performance Devroom</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=8211fNI_nc4">Recording</a></li>
</ul>
</li>
</ul>
<p><strong>Related</strong></p>
<ul>
<li><a href="/posts/fosdem-2026-measuring-software-performance/">Measuring Software Performance: Why Your Benchmarks Are Probably Lying</a> — full technical blog post expanding on this talk</li>
</ul>
]]></content:encoded></item><item><title>talk: Unleashing the Go Toolchain</title><link>https://kakkoyun.me/talks/unleashing-the-go-toolchain/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/unleashing-the-go-toolchain/</guid><description>Discover how the -toolexec flag unlocks programmable build pipelines in Go, enabling custom analysis, code generation, and instrumentation at compile time for organization-wide practices.</description><content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>Along the way we’ll spotlight real projects—such as Datadog’s Orchestrion—and community efforts in compile-time instrumentation, showing what’s already possible and where things are heading. Finally, we’ll share practical tips for keeping builds fast and reliable when you venture beyond the default toolchain path.</p>
<p>If you’re curious about bending the Go compiler to your will—and doing so responsibly—this talk will equip you with the concepts, examples, and inspiration to start experimenting the moment you’re back at your editor.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/8Rw-fVEjihw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/public-content/blob/main/media/export/GopherCon%20UK%202025%20-%20Unleashing%20the%20Go%20Toolchain.pdf">Unleashing the Go Toolchain</a>
<ul>
<li><a href="https://github.com/kakkoyun/public-content/blob/main/presentations/2025/GopherCon%20UK%202025%20-%20Unleashing%20the%20Go%20Toolchain.md">Slides - Markdown</a></li>
</ul>
</li>
</ul>
<p><strong>Demo/Code</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/gopherconuk25-demo">gopherconuk25-demo</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://www.gophercon.co.uk/">GopherCon UK 2025</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=8Rw-fVEjihw">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Best Practices and Pitfalls of Instrumenting Your Cloud-Native Application</title><link>https://kakkoyun.me/talks/best-practices-and-pitfalls-of-instrumenting-your-cloud-native-application/</link><pubDate>Tue, 08 Nov 2022 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/best-practices-and-pitfalls-of-instrumenting-your-cloud-native-application/</guid><description>Patterns and best practices for instrumenting cloud-native services with Prometheus metrics, covering common pitfalls, correlation with other observability signals, and client_golang improvements.</description><content:encoded><![CDATA[<p>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.</p>
<p>Building observable applications begins with proper instrumentation. While Prometheus tooling simplifies this process, there are still numerous opportunities for mistakes or misuse.</p>
<p>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 <code>client_golang</code>, the Go client library for Prometheus.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/B6Ds2myOIRc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1uRyWxPGTTfn9_UnX4sWyUd5Lcf7MKg-qvi3hajFtLZI/edit?usp=sharing">Best Practices and Pitfalls of Instrumenting Your Cloud-Native Application</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://promcon.io/2022-munich/talks/best-practices-and-pitfalls-of-i/">PromCon EU 2022</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=B6Ds2myOIRc">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Story of Correlation - Integrating Thanos Metrics with Observability Signals</title><link>https://kakkoyun.me/talks/story-of-correlation-integrating-thanos-metrics/</link><pubDate>Wed, 15 Jun 2022 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/story-of-correlation-integrating-thanos-metrics/</guid><description>How to correlate Thanos metrics with logs, traces, and continuous profiling for enhanced observability, demonstrating end-to-end integration patterns across multiple backends.</description><content:encoded><![CDATA[<p>The CNCF Incubated Thanos project with the large open-source community continues to push boundaries regarding observability and monitoring using Prometheus-based metrics. Together with the Prometheus community, it improves the metric story for Kubernetes clusters and beyond. Things like improved performance, better scalability, debuggability, security, metrics backfilling and query QoS is only the tip of the iceberg. As we know, observability nowadays comes in many flavours. Bunching them together is not a trivial side, given many shapes and collection points. Aside from metrics, we have logs, traces or even continuous profiling. In this talk, Kemal and Bartek, Thanos maintainers, after a quick overview of Thanos, will explain how Thanos can be integrated with those non-metric observability signals. The audience will learn an example, end-to-end ways to correlate multiple observability backends with Thanos for enhanced observability and monitoring experience.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/rWFb01GW0mQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1FvMqgD5jL5_eoUs6CgIFiBS06U0Ge1CBSXZKz26fsac/edit?usp=sharing">Story of Correlation: Integrating Thanos Metrics with Observability Signals</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://sched.co/ytsK">KubeCon EU 2022</a>
<ul>
<li><a href="https://youtu.be/rWFb01GW0mQ">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: eBPF? Safety First!</title><link>https://kakkoyun.me/talks/ebpf-safety-first/</link><pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/ebpf-safety-first/</guid><description>Building safe eBPF programs by combining Rust in the data plane for compile-time safety and Go in the control plane for rapid development, targeting Kubernetes workloads.</description><content:encoded><![CDATA[<p>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.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/oWHQrlE2-G8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1hKqxAC9aaWLPM4xwXyXuK5cp2LBAewOVqZ05qjLNnK8/edit?usp=sharing">eBPF? Safety First!</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://sched.co/zrPZ">Cloud-Native eBPF Day EU 2022</a>
<ul>
<li><a href="https://youtu.be/oWHQrlE2-G8">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Building a Go Profiler Using Go</title><link>https://kakkoyun.me/talks/building-a-go-profiler-using-go/</link><pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/building-a-go-profiler-using-go/</guid><description>Learn how to build a Go profiler using eBPF technology, combining portable eBPF programs with Go for continuous profiling and performance analysis in cloud-native environments.</description><content:encoded><![CDATA[<p>Profiling has long been part of the Go developer’s toolbox to analyze the resource usage of a running process. But do you ever wonder how profilers built? In this talk, I will bring eBPF (a promising Kernel technology) and Go together to build a profiler for understanding Go code at runtime.</p>
<p>Profiling has long been part of the developer’s toolbox to analyze the resource usage of a running process. Go users are very familiar with the concept thanks to state-of-art Go tooling. For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper, which is called continuous profiling. Through continuous profiling, the systematic collection of profiles, entirely new workflows suddenly become possible.</p>
<p>In parallel, eBPF became a new promising technology, is likely not news to most people in cloud space. We are discovering more use cases where eBPF can be useful, especially when combined with Go and modern infrastructure, from security, over observability to performance tuning. For a long time, eBPF has struggled with portability, it needed to be compiled for each kernel, or a compiler and kernel headers needed to be shipped to execute effectively arbitrary code. The eBPF community acknowledged this and started the CO:RE (compile once-run everywhere) initiative, which is young but quickly maturing in the form of libbpf and libbpf-go.</p>
<p>In this talk, we will bring these two concepts together, and explain how to write portable eBPF programs and embed them in Go applications. And what libbpf-go does in order to achieve compile once-run everywhere, how it can be used in portable Go applications. We will demonstrate all concepts together by using real-life examples to help measure and improve performance systematically.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/OlHQ6gkwqyA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<h4 id="demo-application"><a href="https://github.com/kakkoyun/tiny-profiler">Demo Application</a></h4>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1hKqxAC9aaWLPM4xwXyXuK5cp2LBAewOVqZ05qjLNnK8/edit?usp=sharing">Building a Go Profiler Using Go</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://gophercon.eu">GopherCon EU 2022</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=OlHQ6gkwqyA">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Achieving Zero-Instrumentation Monitoring with eBPF</title><link>https://kakkoyun.me/talks/achieving-zero-instrumentation-monitoring/</link><pubDate>Tue, 15 Feb 2022 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/achieving-zero-instrumentation-monitoring/</guid><description>&lt;p&gt;Metrics are powerful tools in the cloud-native space, enabled by Prometheus. However, using facilities to enable monitoring requires instrumenting the code. Everyone wants observability, but nobody wants to go the extra mile to instrument their clusters or applications. This is where eBPF comes in. eBPF, a promising technology for observability tooling, is not news. To observe the infrastructure and applications, eBPF-based system-wide agents can help us to capture events without requiring recompilation or redeployment of applications. In this talk, attendees will discover alternative ways to collect metrics from applications and infrastructure using system-wide eBPF agents. The presenters will demonstrate what level of observability could be accomplished without instrumentation.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Metrics are powerful tools in the cloud-native space, enabled by Prometheus. However, using facilities to enable monitoring requires instrumenting the code. Everyone wants observability, but nobody wants to go the extra mile to instrument their clusters or applications. This is where eBPF comes in. eBPF, a promising technology for observability tooling, is not news. To observe the infrastructure and applications, eBPF-based system-wide agents can help us to capture events without requiring recompilation or redeployment of applications. In this talk, attendees will discover alternative ways to collect metrics from applications and infrastructure using system-wide eBPF agents. The presenters will demonstrate what level of observability could be accomplished without instrumentation.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/g6B9Vbr88HM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1sMxVo6PVbKxiePgZNtt58xRsvysnFXdCeeVwqLLvwzM/edit?usp=sharing">Achieving Zero-Instrumentation Monitoring with eBPF</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://prometheusdayna22.sched.com/event/1AsMR">PrometheusDay North America 2022</a>
<ul>
<li><a href="https://youtu.be/g6B9Vbr88HM">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Parca - Profiling in the Cloud-Native Era</title><link>https://kakkoyun.me/talks/parca-profiling-in-the-cloud-native-era/</link><pubDate>Sat, 25 Sep 2021 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/parca-profiling-in-the-cloud-native-era/</guid><description>Introduction to continuous profiling with Parca, demonstrating how systematic profile collection enables fleet-wide code understanding at runtime and systematic cloud cost reduction.</description><content:encoded><![CDATA[<p>For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper. Ad-hoc profiling has long been part of the developer’s toolbox to analyze CPU and memory usage of a running process, however, through continuous profiling, the systematic collection of profiles, entirely new workflows suddenly become possible. Matthias and Kemal will start this talk with an introduction to profiling with Go and demonstrate via Conprof - an open-source continuous profiling project - how continuous profiling allows for an unprecedented fleet-wide understanding of code at runtime. Attendees will learn how to continuously profile Go code to help guide building robust, reliable, and performant software and reduce cloud spend systematically.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ficc6_6RYQk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1cPdcLLSc_OzlLOnh1vuUaTuVOFjuJ7-NFbC599Pll2I/edit?usp=sharing">Parca - Profiling in the Cloud-Native Era</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://sched.co/zrPZ">KubeCon NA 2021</a>
<ul>
<li><a href="https://youtu.be/ficc6_6RYQk">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Profiling Go Applications in the Cloud-Native Era</title><link>https://kakkoyun.me/talks/profiling-go-applications-in-the-cloud-native-era/</link><pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/profiling-go-applications-in-the-cloud-native-era/</guid><description>Introduction to continuous profiling for Go applications using open-source tools, demonstrating how systematic profile collection enables fleet-wide code understanding and cloud cost reduction.</description><content:encoded><![CDATA[<p>For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper. Ad-hoc profiling has long been part of the developer’s toolbox to analyze the CPU and memory usage of a running process. However, through continuous profiling, and the systematic collection of profiles, entirely new workflows suddenly become possible.</p>
<p>The presenter will start this talk with an introduction to profiling applications, and demonstrate how one can practice it using open-source continuous profiling tools, and how continuous profiling allows for an unprecedented fleet-wide understanding of code at production runtime.</p>
<p>Attendees will learn how to continuously profile their code, guide themselves in building robust, reliable, and performant software and reduce cloud spending systematically.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/-miC_jnQ_Yk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1uue-Mpyw5zSuWfe1qphyhBtrCX4TmBWhN3iMcdYlnek/edit?usp=sharing">Profiling Go Applications in the Cloud-Native Era</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://gophercon.ist/#schedule">GopherCon Turkey 2021</a>
<ul>
<li><a href="https://youtu.be/-miC_jnQ_Yk">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Building Observable Go Services</title><link>https://kakkoyun.me/talks/building-observable-go-services/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/building-observable-go-services/</guid><description>A guide to the four pillars of observability (logs, metrics, traces, profiling) in Go services, using CNCF tools like Prometheus, Loki, OpenTelemetry, Jaeger, and Conprof.</description><content:encoded><![CDATA[<p>In modern days, we run our applications as loosely coupled micro-services on distributed, elastic infrastructure as (mostly) stateless workloads. Under these circumstances, observability has become a key attribute to understand how our applications run and behave in action, in order to provide highly available and resilient service.</p>
<p>There exist several observability signals, such as “log”, “metric”, “tracing” and “profiling” that can be collected from a running service, which we can also call pillars of observability. Using these signals, we can create real-time, actionable alerts, create panels where we can monitor applications closely, and perform in-depth analysis to find the root of the systems’ failures. Within the Go and CNCF community, there are a variety of tools that can collect and make these observable signals useful.</p>
<p>During this talk, Kemal will first introduce the tools that can be embedded in the services to make critical services observable, and share the patterns that will enable them to be used efficiently in the applications and services. Moreover,  he will demonstrate how to use these collected signals in real-life scenarios, using CNCF tools — Loki, Prometheus, OpenTelemetry, Jaeger, Conprof. He also aims to share the methods that are used to build and run applications running under heavy-traffic, and to understand the origin of the problems encountered in running systems.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/xkLyM1Gnaus" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/building-observable-go-services">Building Observable Go Services</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://gophercon.ist/en">GopherCon Turkey 2020</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=xkLyM1Gnaus">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Absorbing Thanos Infinite Powers for Multi-Cluster Telemetry</title><link>https://kakkoyun.me/talks/absorbing-thanos-infinite-powers/</link><pubDate>Tue, 10 Nov 2020 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/absorbing-thanos-infinite-powers/</guid><description>Introduction to Thanos, the CNCF project that horizontally scales Prometheus for global-scale highly available monitoring across multiple clusters and clouds with low maintenance cost.</description><content:encoded><![CDATA[<p>Thanos is an open-source, CNCF’s Incubated project that horizontally scales Prometheus to create a global-scale highly available monitoring system. It extends Prometheus in a few simple steps and it is already used in production by hundreds of companies that aim for high multi-cloud scale for metrics while keeping low maintenance cost. During this talk, core Thanos (and Prometheus) maintainers, will briefly introduce basic ideas behind Thanos and deployment models and use cases. After that, to satisfy more experienced users, they will explain more advanced concepts, tips for running on the scale, and the latest shiny usability improvements. Thanks to the growing community there is much to talk about!</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/6Nx2BFyr7qQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://docs.google.com/presentation/d/1gMBQ7wLqAae45uGOcaYex-_9s675yzgexW705D7KM1Y/edit#slide=id.ga47ea1e9a6_0_13">Absorbing Thanos Infinite Powers for Multi-Cluster Telemetry</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://sched.co/zrPZ">KubeConNA 2020</a>
<ul>
<li><a href="https://youtu.be/6Nx2BFyr7qQ">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: The Zen of Prometheus</title><link>https://kakkoyun.me/talks/the-zen-of-prometheus/</link><pubDate>Sun, 20 Sep 2020 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/the-zen-of-prometheus/</guid><description>Best practices, patterns, and common pitfalls for instrumenting cloud-native applications with Prometheus metrics, covering instrumentation, alerting, and monitoring strategies.</description><content:encoded><![CDATA[<p>Live Website: <a href="https://the-zen-of-prometheus.netlify.app/">The Zen of Prometheus</a></p>
<p>In modern days, we run our applications as loosely coupled microservices on distributed, elastic infrastructure as (mostly) stateless workloads. Under these circumstances, observability is the key to understanding how our applications run and behave in action to deliver highly available and resilient service.</p>
<p>Prometheus is born in such an atmosphere as a solution to satisfy the observability needs of the cloud-native era. Among many other observability signals like logs and traces, metrics play the most substantial role. Sampled measurements observed throughout the system are crucial for monitoring the health of the applications and they enable real-time, actionable alerting. Although Prometheus tooling makes life a lot easier, there are still numerous possibilities to make mistakes or misuse them.</p>
<p>During this talk, Kemal will present several valuable patterns, best practices and idiomatic methods for instrumenting critical services. He will discuss common pitfalls and failure cases while sharing useful insights and methods to avoid those mistakes. Last but not least, he will give tips for writing simple, maintainable and robust alerts that derived from real-life experiences. By doing so he will propose “The Zen of Prometheus”.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Nqp4fjw_omU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/the-zen-of-prometheus">The Zen of Prometheus</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://promcon.io/2020-online/">PromCon Online 2020</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=Nqp4fjw_omU">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title>talk: Are you testing your observability?</title><link>https://kakkoyun.me/talks/are-you-testing-your-observability/</link><pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate><author>kakkoyun@gmail.com (Kemal Akkoyun)</author><guid>https://kakkoyun.me/talks/are-you-testing-your-observability/</guid><description>Best practices and patterns for instrumenting Go applications with metrics, including how to use unit tests to verify the correctness of your observability signals and avoid common pitfalls.</description><content:encoded><![CDATA[<p>Observability is the key to understand how your application runs and behaves in action. This is especially vital for distributed environments like Kubernetes, where users run Cloud-Native microservices often written in Go.</p>
<p>Among many other observability signals like logs and traces, the metrics signal has a substantial role. Sampled measurements observed throughout the system are crucial for monitoring the health of the applications and, they enable real-time, actionable alerting. While there are many open-source robust libraries, in various languages, that allow us to easily instrument services for backends like Prometheus, there are still numerous possibilities to make a mistake or misuse those libraries.</p>
<p>During this talk, we discuss valuable patterns and best practices for instrumenting your Go application. The speakers will go through common pitfalls and failure cases while sharing valuable insights and methods to avoid those mistakes. Also, this talk demonstrates, how to use Go unit testing to verify the correctness of your observability signals. How it helps and why it is important. Last but not least, the talk covers a demo of the example instrumented Go application based on the experience and projects we maintain.</p>
<h4 id="recording">Recording</h4>
<iframe width="560" height="315" src="https://www.youtube.com/embed/LU6D5cNeHks" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<p><strong>Slides</strong></p>
<ul>
<li><a href="https://github.com/kakkoyun/are-you-testing-your-observability">Are You Testing Your Observability?</a></li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li><a href="https://www.godays.io/conferenceday1">GoDays Berlin 2020</a>
<ul>
<li><a href="https://youtu.be/LU6D5cNeHks">Recording</a></li>
</ul>
</li>
<li><a href="https://archive.fosdem.org/2020/schedule/event/testing_observability/">FOSDEM 2020</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=-jF4nWfrY3w">Recording</a></li>
</ul>
</li>
</ul>
]]></content:encoded></item></channel></rss>