Exemple #1
0
// getDataTableRaw returns a db.DataTable with the X-axis as time, all other
// columns sorted by name, and no specified row order.
func getDataTableRaw(D db.DB, req db.RowRangeRequests) (dTable *db.DataTable, err error) {
	t2 := time.Now()
	if len(req.FilteredSources) == 0 {
		return dTable, errors.New("No sources selected.")
	}
	dTable, err = D.ReadRows(req)
	if err != nil {
		return nil, err
	}

	t1 := time.Now()

	if len(dTable.ColumnNames) > 0 {
		originalName := dTable.ColumnNames[0]
		dTable.ColumnNames[0] = "!" + originalName // Force first column to sort first.
		dTable.SortDataColumns()
		dTable.ColumnNames[0] = originalName // Now remove "!"
		glog.V(2).Infof("PERF: Data column sort time: %v\n", time.Now().Sub(t1))
	}

	t2Delay := time.Now().Sub(t2)
	glog.V(2).Infof("PERF: DB read time: %v\n", t2Delay)
	if glog.V(2) && t2Delay.Seconds() > 0 && len(dTable.ColumnNames) > 0 {
		glog.Infof("PERF: DB row reads/sec: %d\n", int64(float64(len(dTable.Data))/t2Delay.Seconds()))
	}
	return dTable, nil
}