goのプログラムを観察するのにgopsが便利だった
gops
というツールがありまして- https://github.com/google/gops
- memstatsやtreeというサブコマンドを使用するとgoで動作しているプログラムから簡単に取得出来たりするので大変便利です
- profileも楽に取れるしありがたい
gops tree
gops tree ... ├── 956 │ └── 7217 (gops) {go1.12} └── 544 └── 593 (com.docker.supervisor) {go1.10.6} └── 596 (com.docker.driver.amd64-linux) {go1.10.6}
この辺の設定を追加すると良い感じにとれる
package main import ( "log" "time" "github.com/google/gops/agent" ) func main() { if err := agent.Listen(agent.Options{}); err != nil { log.Fatal(err) } time.Sleep(time.Hour) }