Skip to content
Command line monitoring for goroutines
Go Makefile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
agent update import paths Mar 19, 2018
Gopkg.lock move cli package into cmd path Mar 4, 2018
Gopkg.toml
LICENSE add README, LICENSE Feb 26, 2018
Makefile
README.md
client.go
dialog.go condense to single main package Mar 17, 2018
footer.go
grid.go condense to single main package Mar 17, 2018
header.go
input.go
keys.go
main.go
parse.go omit leading non-routine lines in goroutine debug body Jul 25, 2019
widgets.go condense to single main package Mar 17, 2018

README.md

grmon

Command line monitoring for goroutines

grmon

Install

go get -u github.com/bcicen/grmon

Usage

Simply import and call grmon.Start() somewhere in your code:

import "github.com/bcicen/grmon/agent"
...
grmon.Start()

alternatively, you may just start the pprof server directly:

import (
	"net/http"
	_ "net/http/pprof"
)
...
go http.ListenAndServe(":1234", nil)

now grmon can connect to the running program:

grmon

By default, grmon will automatically refresh every 5s. Pause automatic refresh(p) to enable the cursor and expand the full trace for a selected goroutine(<enter>).

Keybindings

Key Action
r manually refresh
p pause/unpause automatic updates
s toggle sort column and refresh
f filter by keyword
<up>,<down>,j,k move cursor position
<enter>,o expand trace under cursor
t open trace in full screen mode
q exit grmon

Options

Option Description Default
-i time in seconds between refresh, 0 to disable 5
-host target host localhost:1234
-endpoint target endpoint path /debug/pprof

Roadmap

  • Hierarchal/tree display
You can’t perform that action at this time.