Arguably flame graph screenshots are not the best context encoding, but yes - it works sometimes!
Posts by Felix Geisendörfer
And of course, if you're looking for a vendor, Datadog has you covered.
You can join the preview for the OpenTelemetry eBPF profiler here:
docs.datadoghq.com/profiler/ena...
If this sounds interesting to you, and you'd like to get an early taste of the troubleshooting powers of the Profiles Signal, please check out our post on the OpenTelemetry blog for more details:
opentelemetry.io/blog/2026/pr...
Profiles (unlike logs, metrics and traces) are directly linked to code.
Florian Lehner and I demonstrated this at KubeCon by using profiling to root cause an incident caused by a coding agent.
But the reverse works too: agents can use profiles to troubleshoot or optimize code.
Florian Lehner and Felix Geisendörfer presenting "The Fourth Pillar Arrives: OpenTelemetry Profiling Alpha in Action" at KubeCon EU
The OpenTelemetry Profiles Signal is now in Alpha 🚀
This is a big step towards making Continuous Profiling in production available to the whole industry.
And given the rise of AI coding, this couldn't come at a better moment in time ... 🧵
People that strip debug symbols are not to be trusted.
I’m headed to KubeCon Amsterdam where I’ll be talking about the otel profiling signal graduating to alpha stability.
HMU if you want to chat about otel, go, o11y, profiling or anything else. I’m in town until Thursday night.
+1 I don't see any good reason for introducing a new term exclude.
But git UX is abysmal in general. I exclusively use jj as a frontend these days. But the .git/info/exclude hack still applies :)
.git/info/exclude is one of my favorite git features, but I'm always surprised when I talk to people who never heard about it.
It basically allows you to add stuff to .gitignore without modifying the file. Great for ad-hoc ignoring some files created during debugging.
I used vim exclusively for 10+ years. But when LLMs came up, I ditched it for VS Code and later Cursor as it was the path of least resistance.
But given the advancements of claude et al, it's time to go back. neovim + tmux + jjui - let's go.
Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files:
mostlynerdless.de/blog/2026/02...
I'll be speaking at the Datadog User Group Berlin today.
Expect live demos of our Continuous Profiler product, root causing an incident caused by an LLM-assisted refactoring.
www.meetup.com/datadog-berl...
My GopherCon talk was just posted!
If I had to guess, they want to avoid triggering the hook when the user is still actively watching the window.
But IMO that would be better solved using terminal focus tracking 🤔
Just spend like 20 minutes debugging why claude code notifications don't work. Turns out they fire after a hard coded 60 second timeout.
I don't get it, I thought I'm supposed to feed this thing with input as fast as possible?
github.com/anthropics/c...
My colleague Sanjay Ghemawat & I have done a fair bit of performance tuning of various pieces of code. We wrote an internal Performance Hints document ~2 years ago as a way of identifying some general principles & we've recently published a version of it externally.
Doc: abseil.io/fast/hints.h...
Profiling Request Latency with Critical Path Analysis, @felixge.de @ GopherCon 2025 www.youtube.com/watch?v=BayZ...
The talk @florianl.bsky.social and I submitted has been accepted at KubeCon 2026 in Amsterdam. 🎉
Small wrinkle: The talk says that the profiling signal is in alpha … which is not true yet. Fear driven development will continue until reality and talk description are aligned!
A small productivity hack I use every day.
gist.github.com/felixge/ce96...
Accepted! Go 1.26 will introduce per-state goroutine metrics: running, waiting, in syscalls, etc.
Developers can use them to catch problems early without needing full traces.
antonz.org/accepted/gor...
Small contribution just before the Go 1.26 freeze: go.dev/cl/610815 removes the hard-coded 100ms sleep from the CPU profiler for most platforms. This will make it more efficient and unblock deeper call stacks. As a bonus, uncovered and fixed an 8 year old bug in the profiler go.dev/cl/722940 :)
My talk from GopherCon 2025 about Green Tea is up on YouTube! www.youtube.com/watch?v=gPJk...
actually, almost the same, the trunk parent is missing, but that’s okay if x is a descendant of trunk I guess?
You can do that in one step if you run:
jj parallelize x::w
same as
jj parallelize x::w
jj new trunk x n p w
"It has, with generative code, become harder and harder to strive towards the lions because the models produce code that is, quite literally, mid" - beautiful post by @vickiboykis.com
newsletter.vickiboykis.com/archive/i-wa...
Thank you for all your great work on this ❤️
I see a future in #jj-vcs: steveklabnik.com/writing/i-se...
+1
I'd love to join one of these again soon, but I'm playing beach volleyball during that time. But usually I play Fridays, so it should work next time.