code: func (agg *Aggregator) flush() {
  	if agg.minMetric != nil {
  		agg.minMetric.Add(agg.currentBoundary, agg.agg.Min)
  	}
  	if agg.maxMetric != nil {
  		agg.maxMetric.Add(agg.currentBoundary, agg.agg.Max)
  	}
  	if agg.sumMetric != nil {
  		agg.sumMetric.Add(agg.currentBoundary, agg.agg.Sum)
  	}
  	if agg.cntMetric != nil {
  		agg.cntMetric.Add(agg.currentBoundary, agg.agg.Cnt)
  	}
  	if agg.lstMetric != nil {
  		agg.lstMetric.Add(agg.currentBoundary, agg.agg.Lst)
  	}
  	//msg := fmt.Sprintf("flushed cnt %v sum %f min %f max %f, reset the block", agg.agg.cnt, agg.agg.sum, agg.agg.min, agg.agg.max)
  	agg.agg.Reset()
  }
docs: // flush adds points to the aggregation-series and resets aggregation state