This is related to pprof https://github.com/google/pprof/issues/457 issue 
I've opened. 

The usecase is like this:

I have running go service, which periodically has pathological behavior. 
Think every 30ihs seconds some heavy CPU/memory intensive operation 
happens. Or under certain conditions. This pathological behavior is rare 
enough not to be caught by pprof default view; it's masked during process 
lifetime.

Yet it affects latency. 

Enter https://github.com/Netflix/flamescope

It's flamegraph on steroids --> I see profile data in small discrete step 
and can zoom into arbitrary time slice and generate flamegraph from it. 
With it I can easily see pathogenic patterns, zoom into them and further 
investigate. I've used it with perf data, however with perf I'm missing 
golang stack frame (( https://golang.org/doc/go1.12#compiler ; there should 
be some support for that for ARM64, though it comes at 3% CPU cost and I'm 
unsure is it available on other platforms too )).

The only thing needed to bring this into reality is, well, some additional 
data into pprof. Concretely some timestamp/ offset, for example, 
nanoseconds since process start would be enough and easily calculated 
additional datapoint. Even before protobus VLE and gzip compression, this 
would amount for negligible data amount, assuming 101HZ sampling rate & 
100s of samples that are 10000 data points /CPU core, which for  8byte 
int64 would equal ~80KB/CPU core, tiny by today standards. 


How does this sound to you?

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to