<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Continuous Profiling on Nicole van der Hoeven</title><link>https://nicolevanderhoeven.com/tags/continuous-profiling/</link><description>Recent content in Continuous Profiling on Nicole van der Hoeven</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Nicole van der Hoeven</copyright><lastBuildDate>Mon, 18 May 2026 05:00:00 +0100</lastBuildDate><atom:link href="https://nicolevanderhoeven.com/tags/continuous-profiling/index.xml" rel="self" type="application/rss+xml"/><item><title>Continuous Profiling, the OpenTelemetry Way (Grafana ❤️🔥 OpenTelemetry Community Call #7)</title><link>https://nicolevanderhoeven.com/blog/20260518-gocc07-continuous-profiling/</link><pubDate>Mon, 18 May 2026 05:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260518-gocc07-continuous-profiling/</guid><description>&lt;p&gt;In this community call, my coworker &lt;strong&gt;Tiffany Jernigan&lt;/strong&gt; and I sat down with &lt;strong&gt;Christian Simon&lt;/strong&gt;, who works on Grafana Pyroscope, to dig into profiling as the &lt;strong&gt;fourth signal&lt;/strong&gt; in OpenTelemetry. Metrics, logs, and traces are the classic three pillars — but a significant portion of latency lives &lt;em&gt;inside&lt;/em&gt; a span, in the actual code execution, where the other three can&amp;rsquo;t see. Profiling fills that gap by giving you continuous, code-level visibility into where time is being spent.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/N47wy9pp7Lo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="what-we-covered"&gt;What we covered&lt;/h2&gt;
&lt;h3 id="-profiling-as-the-fourth-signal"&gt;🔥 Profiling as the fourth signal&lt;/h3&gt;
&lt;p&gt;Most observability conversations stop at logs, metrics, and traces. But when you see a slow span and ask &lt;em&gt;&amp;ldquo;what was the code actually doing?&amp;rdquo;&lt;/em&gt; — none of the three pillars can answer. Christian made the case that profiling is the missing piece: continuous, low-overhead, code-level visibility, typically visualized as flame graphs that attribute latency to specific functions and execution paths.&lt;/p&gt;
&lt;h3 id="-what-flame-graphs-actually-tell-you"&gt;📊 What flame graphs actually tell you&lt;/h3&gt;
&lt;p&gt;If you haven&amp;rsquo;t worked with flame graphs before: wide bars = lots of time spent in that function, and the stack reads bottom-up. Once you understand how to read them, they become surprisingly fast to interpret. We walked through what to look for and how to spot the patterns that matter.&lt;/p&gt;
&lt;h3 id="-the-current-state-of-profiling-in-opentelemetry"&gt;🌐 The current state of profiling in OpenTelemetry&lt;/h3&gt;
&lt;p&gt;Profiling is the newest signal to enter the OpenTelemetry spec, and the conversation around it is still evolving. Christian gave a clear-eyed status update on where things are — what&amp;rsquo;s stable, what&amp;rsquo;s experimental, and what the path to GA looks like.&lt;/p&gt;
&lt;h3 id="-running-profiling-in-production"&gt;🚀 Running profiling in production&lt;/h3&gt;
&lt;p&gt;The most common pushback on continuous profiling is &lt;em&gt;&amp;ldquo;what&amp;rsquo;s the overhead?&amp;rdquo;&lt;/em&gt; — and the honest answer is that modern continuous profilers typically add 1–3% CPU overhead, which makes them safe to run in production all the time. We talked through deployment patterns, including Kubernetes / containerized environments, and how to think about cost and storage.&lt;/p&gt;
&lt;h3 id="-correlating-profiles-with-traces-and-metrics"&gt;🧵 Correlating profiles with traces and metrics&lt;/h3&gt;
&lt;p&gt;This is where profiling really earns its place. Trace ID → profile is the killer pattern: you see a slow span, you click through to the flame graph for that exact execution, and you immediately see which function ate the time. Christian showed how this correlation works in practice and how it changes incident response.&lt;/p&gt;
&lt;h3 id="-how-to-get-involved"&gt;🤝 How to get involved&lt;/h3&gt;
&lt;p&gt;OpenTelemetry profiling is genuinely an area where the community has room to shape the future. If the conversation sparked something, there&amp;rsquo;s a working group, open issues, and a friendly path in.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/oss/pyroscope/"&gt;Grafana Pyroscope&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/open-telemetry/community/blob/main/projects/profiling.md"&gt;OpenTelemetry Profiling SIG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/pyroscope/latest/"&gt;Pyroscope docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opentelemetry.io/docs/"&gt;OpenTelemetry documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to Christian for joining, to Tiffany for co-hosting, and to everyone who showed up live with questions.&lt;/p&gt;</description></item><item><title>How to do continuous profiling right with Grafana Pyroscope and Ryan Perry, (Grafana Office Hours #26)</title><link>https://nicolevanderhoeven.com/blog/20240119-goh26-how-to-do-continuous-profiling-right-with-grafana-pyroscope/</link><pubDate>Fri, 19 Jan 2024 18:09:01 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240119-goh26-how-to-do-continuous-profiling-right-with-grafana-pyroscope/</guid><description>&lt;p&gt;My friend &lt;a href="https://javaducky.com"&gt;Paul Balogh&lt;/a&gt; and I interview &lt;a href="https://ryanperry.io"&gt;Ryan Perry&lt;/a&gt;, co-founder of Grafana Pyroscope, about how to do continuous profiling right. Ryan, and the rest of the Pyroscope team, joined Grafana Labs, where he is now a Director of Engineer. Ryan discusses the main concerns in continuous profiling and how to avoid those pitfalls. Pyroscope is an open-source project for aggregating continuous profiling data about your system&amp;rsquo;s resources.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pzNRvMQzrJ0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Pyroscope &lt;a href="https://grafana.com/docs/pyroscope/"&gt;docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pyroscope &lt;a href="https://pyroscope.io/"&gt;site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pyroscope &lt;a href="https://github.com/grafana/pyroscope"&gt;repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Weigh in on the &lt;a href="https://github.com/open-telemetry/oteps/pull/239"&gt;OpenTelemetry Profiling Data Model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>