It's not that Ian's response was clearer, it's that he actually answered
the question of if I can do $thing in Go; given that I can't he pointed me
to the same reference as you.

It's okay that Go can't do some things, but being opaque about it isn't
helpful.

Thanks for your help both of you!
-Steve

On Tue, May 12, 2020 at 1:57 PM Robert Engels <reng...@ix.netcom.com> wrote:

> In my first response I said to use labels and referred you to a document
> on how to do it. I guess Ian’s wording was clearer :)
>
> > On May 12, 2020, at 3:53 PM, Ian Lance Taylor <i...@golang.org> wrote:
> >
> > On Tue, May 12, 2020 at 1:01 PM Steve Canfield <
> stevencanfi...@gmail.com> wrote:
> >>
> >> Thanks Ian. Are there limits on how many such labels exist for the life
> of the process, or can be active at once? Would labeling by rpc_guid be
> acceptable?
> >
> > There are no limits on labels other than memory usage.
> >
> > Ian
> >
> >>> On Tue, May 12, 2020 at 12:06 PM Ian Lance Taylor <i...@golang.org>
> wrote:
> >>>
> >>> On Tue, May 12, 2020 at 10:31 AM Steve Canfield
> >>> <stevencanfi...@gmail.com> wrote:
> >>>>
> >>>> I feel like I must be really dense, but it doesn't seem like you are
> answering my question.
> >>>>
> >>>> Again, assume I have good reasons to want to know the cpu usage for
> every request. Let's say I want to do isolation or billing or whatever on
> the basis of cpu usage.
> >>>>
> >>>> Is this possible in Go?
> >>>
> >>> Use context labels (https://golang.org/pkg/runtime/pprof/#WithLabels)
> >>> and CPU profiling.  The profile should let you attribute CPU usage per
> >>> label.
> >>>
> >>> However, that approach would only do sampling.  I do not know of an
> >>> approach that would let you get fairly precise CPU usage for every
> >>> request, as when multiple goroutines are running in parallel there is
> >>> no good way to separate out the CPU usage of each goroutine.
> >>>
> >>> Ian
> >>>
> >>>
> >>>> On Mon, May 11, 2020 at 9:51 PM robert engels <reng...@ix.netcom.com>
> wrote:
> >>>>>
> >>>>> Also, you may be interested in 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/
> >>>>>
> >>>>> 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
> >>>>>
> >>>>> 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> 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>
> wrote:
> >>>>>>
> >>>>>> Look at pprof labels.
> >>>>>>
> >>>>>> On May 11, 2020, at 6:29 PM, Steven Canfield <
> 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.
> >>>>>> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/e2d7e3d7-c678-4515-9cdb-060d29b14500%40googlegroups.com
> .
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> 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/A1D870A7-ADFD-4F00-B678-E7C6C0FE80FD%40ix.netcom.com
> .
> >>>>>
> >>>>>
> >>>> --
> >>>> 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/CANLJsyBF9BezZVYtoFcGCTNYQrTuVVAQoEgBC2CWVRJOxb8P-A%40mail.gmail.com
> .
> >
> > --
> > 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/CAOyqgcVknCuT8e8KSwR1VQa%2BQSnBzZ9RUdBLC1PQfAYDVJzPtQ%40mail.gmail.com
> .
>
>

-- 
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/CANLJsyD30-02N5OSQrwKbnJQ99EGy0XY3HKgJDyNtacB_EWN6A%40mail.gmail.com.

Reply via email to