雑なメモ書き

気楽にいきます

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)
}