X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=performance_schema%2Ffile_summary_by_instance%2Ffile_summary_by_instance.go;h=737caa82c5351946f2ad471a6bacae0760ff3329;hb=5fda25cdcba60bba4aa0736b715088ec93e07913;hp=5340ed7c3d87430561f1bbd72d1223beef894370;hpb=38376bf5db9af25660b8183b2c022d079bb2b5ea;p=pstop.git diff --git a/performance_schema/file_summary_by_instance/file_summary_by_instance.go b/performance_schema/file_summary_by_instance/file_summary_by_instance.go index 5340ed7..737caa8 100644 --- a/performance_schema/file_summary_by_instance/file_summary_by_instance.go +++ b/performance_schema/file_summary_by_instance/file_summary_by_instance.go @@ -6,8 +6,10 @@ package file_summary_by_instance import ( "database/sql" + "fmt" + "time" - // "github.com/sjmudd/pstop/lib" + "github.com/sjmudd/pstop/lib" ps "github.com/sjmudd/pstop/performance_schema" ) @@ -55,7 +57,7 @@ type File_summary_by_instance struct { } // reset the statistics to current values -func (t *File_summary_by_instance) UpdateInitialValues() { +func (t *File_summary_by_instance) SyncReferenceValues() { t.SetNow() t.initial = make(file_summary_by_instance_rows, len(t.current)) copy(t.initial, t.current) @@ -73,6 +75,7 @@ func (t *File_summary_by_instance) UpdateInitialValues() { // Collect data from the db, then merge it in. func (t *File_summary_by_instance) Collect(dbh *sql.DB) { + start := time.Now() // UPDATE current from db handle t.current = merge_by_table_name(select_fsbi_rows(dbh), t.global_variables) @@ -102,6 +105,7 @@ func (t *File_summary_by_instance) Collect(dbh *sql.DB) { // setup the totals t.totals = t.results.totals() + lib.Logger.Println("File_summary_by_instance.Collect() took:", time.Duration(time.Since(start)).String()) } // return the headings for a table @@ -136,7 +140,8 @@ func (t File_summary_by_instance) EmptyRowContent() string { } func (t File_summary_by_instance) Description() string { - return "File I/O by filename (file_summary_by_instance)" + count := t.count_rows() + return fmt.Sprintf("File I/O by filename (file_summary_by_instance) %4d row(s) ", count) } // create a new structure and include various variable values: @@ -149,3 +154,13 @@ func NewFileSummaryByInstance(global_variables map[string]string) *File_summary_ return n } + +func (t File_summary_by_instance) count_rows() int { + var count int + for row := range t.results { + if t.results[row].SUM_TIMER_WAIT > 0 { + count++ + } + } + return count +}