I would start with making sure you can get the standard ‘go tool trace’ and 
‘pprof’ working. Once you have those working ‘goanalyzer’ is an enhanced 
version. 

The docs are far more complete and substantial on the standard tools. 

> On Sep 11, 2020, at 1:37 AM, Siddhesh Divekar <siddhesh.dive...@gmail.com> 
> wrote:
> 
> 
> Is there any dependency on GOPATH while running `./goanalyzer binary 
> trace-file` ?
> Also my goanalyzer is built on mac and am trying to look at trace file 
> generated on ubuntu (shouldn't be a problem).
> 
> ./goanalyzer ~/workspace/binary  ~/workspace/trace
> 2020/09/10 23:27:32 Parsing trace...
> 2020/09/10 23:27:32 Splitting trace...
> 2020/09/10 23:27:32 Opening browser. Trace viewer is listening on 
> http://127.0.0.1:55520
> 
> If I try to go to a particular go routing eg 
> http://127.0.0.1:55520/trace?goid=9084 I see nothing on the browser.
> 
> Clicking on any of the graphs for a goroutine says the following.
> failed to execute go tool pprof: exit status 1
> failed to execute dot. Is Graphviz installed? Error: exec: "dot": executable 
> file not found in $PATH
> 
>> On Thu, Sep 10, 2020 at 4:49 PM robert engels <reng...@ix.netcom.com> wrote:
>> goanalyzer = go tool trace
>> 
>> The options to goanalyzer are the same as ‘go tool trace’ - the usage 
>> message is misleading in this way.
>> 
>> By ‘map’ I mean expose the pprof port as you would any other port, and yes 
>> you use the net/http/pprof to start the internal webserver - you don’t need 
>> to create your own.
>> 
>> 
>> 
>>> On Sep 10, 2020, at 6:38 PM, Siddhesh Divekar <siddhesh.dive...@gmail.com> 
>>> wrote:
>>> 
>>> Hi Robert,
>>> 
>>> Laying down the steps to make sure I understood it correctly.
>>> 
>>>> You can map the port 
>>> What did you mean by above ? 
>>> 
>>>> but might be easier to capture to a file via code and use goanalyzer on 
>>>> the file
>>> In this case I will do the following.
>>> a) Set up a webserver in my program for getting Go profiles (with import _ 
>>> "net/http/pprof")
>>> b) map a port from outside k8s so that i can run curl 
>>> localhost:$PORT/debug/pprof/$PROFILE_TYPE to save a profile (say 
>>> profile-file)
>>> c) Use go tool pprof/goanalyzer to analyze given profile from the 
>>> profile-file
>>> 
>>> I would prefer to run this outside my process as the issue we expect to 
>>> happen is when my program is hung.
>>> I am not sure if the http server would respond & generate profile files.
>>> 
>>> From the help of goanalyzer it's not very clear how I would pass the 
>>> profile-file to it.
>>> It's showing how to generate profile-file using go test/tool but not how to 
>>> pass them to goanalyzer.
>>> 
>>> # ./goanalyzer -h
>>> Usage of 'go tool trace':
>>> Given a trace file produced by 'go test':
>>> go test -trace=trace.out pkg
>>> 
>>> Open a web browser displaying trace:
>>> go tool trace [flags] [pkg.test] trace.out
>>> 
>>> Generate a pprof-like profile from the trace:
>>>     go tool trace -pprof=TYPE [pkg.test] trace.out
>>> 
>>> [pkg.test] argument is required for traces produced by Go 1.6 and below.
>>> Go 1.7 does not require the binary argument.
>>> 
>>> Supported profile types are:
>>>     - net: network blocking profile
>>>     - sync: synchronization blocking profile
>>>     - syscall: syscall blocking profile
>>>     - sched: scheduler latency profile
>>> 
>>> Flags:
>>> -http=addr: HTTP service address (e.g., ':6060')
>>> -pprof=type: print a pprof-like profile instead
>>> -d: print debug info such as parsed events
>>>  
>>> 
>>>> On Thu, Sep 10, 2020 at 3:22 PM Robert Engels <reng...@ix.netcom.com> 
>>>> wrote:
>>>> You can map the port but might be easier to capture to a file via code and 
>>>> use goanalyzer on the file. 
>>>> 
>>>>>> On Sep 10, 2020, at 4:53 PM, Siddhesh Divekar 
>>>>>> <siddhesh.dive...@gmail.com> wrote:
>>>>>> 
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> Has anyone tried running goanalyzer on golang process running inside k8s 
>>>>> pod.
>>>>> 
>>>>> If so can you point me to the steps.
>>>>> 
>>>>> -- 
>>>>> -Siddhesh.
>>>>> 
>>>>> -- 
>>>>> 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/CAMjfk%2BhUDqMRmE0mDp_gMTKWKT0Be8KgtBxuF2fYAGCs-dNoog%40mail.gmail.com.
>>> 
>>> 
>>> -- 
>>> -Siddhesh.
>> 
> 
> 
> -- 
> -Siddhesh.

-- 
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/E4022F98-1D2D-4D03-A070-4FAF861EF5C3%40ix.netcom.com.

Reply via email to