概要
net/http/pprofをDefaultServeMux以外(Goの標準のルーター以外)で使う方法についてメモ。
ハマりどころ
pprofをblank importするだけではだめ。
DefaultServeMux以外のルーターを使う場合はblank importするだけではpprofが利用できるようにならない。
net/http/pprofを参照すると、下記のように記載されている。
If you are not using DefaultServeMux, you will have to register handlers with the mux you are using.
解決策
下記は自分の自作ルーターbmf-san/goblinを使った例。
上述のようにルーティングを自分で設定し、pprofのHanderを設定してあげる必要がある。
httprouterの場合であれば、下記issueが参考になる。 pprof issue with httprouter #236
余談
pyroscopeでGoのプロファイリングをPull型で設定しようとしたときにハマった。