code: func (a *AggMetric) Add(ts uint32, val float64) {
  	a.Lock()
  	defer a.Unlock()
  
  	if a.rob == nil {
  		// write directly
  		a.add(ts, val)
  	} else {
  		// write through reorder buffer
  		res, err := a.rob.Add(ts, val)
  
  		if err == nil {
  			if len(res) == 0 {
  				a.lastWrite = uint32(time.Now().Unix())
  			} else {
  				for _, p := range res {
  					a.add(p.Ts, p.Val)
  				}
  			}
  		} else {
  			log.Debugf("AM: failed to add metric to reorder buffer for %s. %s", a.key, err)
  			a.discardedMetricsInc(err)
  		}
  	}
  }
docs: // don't ever call with a ts of 0, cause we use 0 to mean not initialized!