// do a fresh collection of data and then update the initial values based on that.
func (state *State) ResetDBStatistics() {
+ // collect all initial values on startup / reset
state.fsbi.Collect(state.dbh)
- state.fsbi.UpdateInitialValues()
-
state.tlwsbt.Collect(state.dbh)
- state.tlwsbt.UpdateInitialValues()
-
state.tiwsbt.Collect(state.dbh)
+
+ state.UpdateInitialValues()
+}
+
+func (state *State) UpdateInitialValues() {
+ start := time.Now()
+ state.fsbi.UpdateInitialValues()
+ state.tlwsbt.UpdateInitialValues()
state.tiwsbt.UpdateInitialValues()
+ lib.Logger.Println("state.UpdateInitialValues() took", time.Duration(time.Since(start)).String())
+}
+
+// Only collect the data we are looking at.
+func (state *State) Collect() {
+ start := time.Now()
+
+ switch state.show {
+ case showLatency, showOps:
+ state.tiwsbt.Collect(state.dbh)
+ case showIO:
+ state.fsbi.Collect(state.dbh)
+ case showLocks:
+ state.tlwsbt.Collect(state.dbh)
+ }
+ lib.Logger.Println("state.Collect() took", time.Duration(time.Since(start)).String())
}
func (state State) MySQLVersion() string {
}
func (state *State) displayOpsOrLatency() {
- state.tiwsbt.Collect(state.dbh)
-
state.screen.PrintAt(0, 2, state.tiwsbt.Headings())
max_rows := state.screen.Height() - 3
// show actual I/O latency values
func (state State) displayIO() {
- state.fsbi.Collect(state.dbh)
-
state.screen.PrintAt(0, 2, state.fsbi.Headings())
// print out the data
}
func (state *State) displayLocks() {
- state.tlwsbt.Collect(state.dbh)
-
state.screen.PrintAt(0, 2, state.tlwsbt.Headings())
// print out the data