"log"
"os"
"os/signal"
+ "runtime/pprof"
"syscall"
"time"
db = "performance_schema"
)
+var flag_version = flag.Bool("version", false, "Show the version of "+lib.MyName())
+var flag_debug = flag.Bool("debug", false, "Enabling debug logging")
+var flag_help = flag.Bool("help", false, "Provide some help for "+lib.MyName())
+var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
+
func get_db_handle() *sql.DB {
var err error
var dbh *sql.DB
}
func main() {
- var flag_version = flag.Bool("version", false, "Show the version of "+lib.MyName())
- var flag_debug = flag.Bool("debug", false, "Enabling debug logging")
- var flag_help = flag.Bool("help", false, "Provide some help for "+lib.MyName())
flag.Parse()
// clean me up
+ if *cpuprofile != "" {
+ f, err := os.Create(*cpuprofile)
+ if err != nil {
+ log.Fatal(err)
+ }
+ pprof.StartCPUProfile(f)
+ defer pprof.StopCPUProfile()
+ }
+
if *flag_debug {
lib.Logger.EnableLogging(true)
}
fmt.Println("Caught a signal", sig)
done <- struct{}{}
case <-ticker.C:
+ state.Collect()
state.Display()
case event := <-termboxChan:
// switch on event type
finished = true
case termbox.KeyTab: // tab - change display modes
state.DisplayNext()
+ state.Display()
}
switch event.Ch {
case '-': // decrease the interval if > 1
finished = true
case 't': // toggle between absolute/relative statistics
state.SetWantRelativeStats(!state.WantRelativeStats())
+ state.Display()
case 'z': // reset the statistics to now by taking a query of current values
state.ResetDBStatistics()
+ state.Display()
}
case termbox.EventResize: // set sizes
state.ScreenSetSize(event.Width, event.Height)
+ state.Display()
case termbox.EventError: // quit
log.Fatalf("Quitting because of termbox error: \n%s\n", event.Err)
}