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是远程模式
以上的命令的采集时间,都是不可配置,可见这里