code: func (queue *Queue) GetRawUsageStats(numStats int) ([]UsageStats, error) {
  	queue.lock.Lock()
  	defer queue.lock.Unlock()
  
  	queueLength := len(queue.buffer)
  	if queueLength == 0 {
  		return nil, fmt.Errorf("No data in the queue")
  	}
  
  	if numStats > queueLength {
  		numStats = queueLength
  	}
  
  	usageStats := make([]UsageStats, numStats)
  	for i := 0; i < numStats; i++ {
  		// Order such that usageStats[i].timestamp > usageStats[i+1].timestamp
  		rawUsageStat := queue.buffer[queueLength-i-1]
  		usageStats[i] = UsageStats{
  			CPUUsagePerc:      rawUsageStat.CPUUsagePerc,
  			MemoryUsageInMegs: rawUsageStat.MemoryUsageInMegs,
  			Timestamp:         rawUsageStat.Timestamp,
  		}
  	}
  
  	return usageStats, nil
  }
docs: // GetRawUsageStats gets the array of most recent raw UsageStats, in descending
  // order of timestamps.