gops 一个用于列出和诊断分析系统中正在运行的 Go 程序的命令行工具

加入agent

package main
import (
	"log"
	"time"
	"github.com/google/gops/agent"
)
func main() {
	if err := agent.Listen(agent.Options{}); err != nil {
		log.Fatal(err)
	}
    /* 远程模式
    if err := agent.Listen(agent.Options{Addr:":10086"}); err != nil {
		log.Fatal(err)
	}
	*/
	time.Sleep(time.Hour)
}

默认情况下是本地模式,agent.Options设置Addr字段,可启用远程模式,远程模式通过tcp连接。

开始使用

$ go get -u github.com/google/gops #安装工具
$ gops # 显示本机上的正在运行的go程序,程序名称后面带了个*的代表嵌入gops agent
$ gops pprof-cpu <pid>|<addr> 	#采集cpu性能数据,30s
$ gops pprof-heap <pid|addr>  	#采集heap性能数据
$ gops trace <pid|addr> 		#采集trace性能数据,5s

其中pid是本地模式,addr是远程模式

以上的命令的采集时间,都是不可配置,可见这里

引用

Go 程序诊断分析工具