Also, you may be interested in github.com/robaho/goanalyzer 
<http://github.com/robaho/goanalyzer> - I feel it makes latency analysis much 
easier.

> On May 11, 2020, at 11:46 PM, robert engels <reng...@ix.netcom.com> wrote:
> 
> You don’t need to do it this way. see https://rakyll.org/profiler-labels/ 
> <https://rakyll.org/profiler-labels/>
> 
> You label the work. The work will be recorded with the labels for analysis. 
> The labels can be nested. This will allow you to use the execution trace to 
> profile wall time, see https://talks.golang.org/2015/dynamic-tools.slide#30 
> <https://talks.golang.org/2015/dynamic-tools.slide#30>
> 
> The standard pprof/profile will do cpu time profiling.
> 
> This is all you really need to do the profiling.
> 
>> On May 11, 2020, at 10:58 PM, Steve Canfield <stevencanfi...@gmail.com 
>> <mailto:stevencanfi...@gmail.com>> wrote:
>> 
>> Thanks, but what about the "I can't enable profiling for every request" bit? 
>> Assume it's actually important for me to know the cpu consumption on a per 
>> request basis.
>> 
>> On Mon, May 11, 2020 at 4:55 PM Robert Engels <reng...@ix.netcom.com 
>> <mailto:reng...@ix.netcom.com>> wrote:
>> Look at pprof labels. 
>> 
>>> On May 11, 2020, at 6:29 PM, Steven Canfield <stevencanfi...@gmail.com 
>>> <mailto:stevencanfi...@gmail.com>> wrote:
>>> 
>>> 
>>> Hi,
>>> 
>>> I have an RPC server which has heterogenous requests, e.g. some calls hit 
>>> cache and are cheaper to serve while others need to compute a result.
>>> 
>>> Is there any way to keep track of the cpu used just by one particular 
>>> goroutine[1]? It seems like there's not a straightforward way today without 
>>> adding logic around every single blocking piece (to start/stop a timer), 
>>> and in the future will become completely impossible with "Non-cooperative 
>>> goroutine preemption".
>>> 
>>> I would be happy with only knowing this number when a goroutine finishes.
>>> 
>>> I'm familiar with using pprof for measuring the entire process, but it's 
>>> not clear to me how to go from there to what was used by a particular RPC, 
>>> and I also can't enable profiling for every request.
>>> 
>>> Thanks,
>>> -Steve
>>> 
>>> 1: I really want a goroutine and its children, but I create new goroutines 
>>> in few enough places that I could do some context mgmt to manage this.
>>> 
>>> -- 
>>> 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 
>>> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/e2d7e3d7-c678-4515-9cdb-060d29b14500%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/golang-nuts/e2d7e3d7-c678-4515-9cdb-060d29b14500%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> 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 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/A1D870A7-ADFD-4F00-B678-E7C6C0FE80FD%40ix.netcom.com
>  
> <https://groups.google.com/d/msgid/golang-nuts/A1D870A7-ADFD-4F00-B678-E7C6C0FE80FD%40ix.netcom.com?utm_medium=email&utm_source=footer>.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/D2E41AEE-E53C-4817-8E77-1D41D5219700%40ix.netcom.com.

Reply via email to