Tracing Goroutines in Realtime with eBPF
46 points by darccio 4 days ago | 6 comments

broken_broken_ 4 hours ago
Interesting to see an ebpf approach to this idea, some time ago I did the same with Dtrace: https://gaultier.github.io/blog/detecting_goroutine_leaks_wi...

However I did not think of observing the ‘castgstatus’ runtime function.

Always nice to be able to compare the DTrace and Ebpf approaches, they both have different strong points.

reply
trueno 4 hours ago
that is actually sick.

how common is it for go devs to experience leaking goroutines ? id like to think go is a lot less shoot yourself in the foot here since they provide a framework for concurrency/parallelism rather than you working with the tiny pieces of it and building out the architecture yourself, but ive only needed to use goroutines once and it was a pretty problem-free experience.

reply
usrnm 32 seconds ago
> how common is it for go devs to experience leaking goroutines

About as often as leaking memory in C++

reply
xtoilette 4 hours ago
Cool! is there something similar for async rust ?
reply
fch42 43 minutes ago
https://docs.rs/tokio-console/latest/tokio_console/ comes to mind.

I'm not aware of eBPF-based dynamic instrumentation for either tokio or other async runtimes, but I'm also not (in need to be) debugging this on a daily basis.

reply
tsuzu 4 hours ago
So cool! Does it support multiple Go versions?
reply
darshil2023 2 hours ago
[dead]
reply