func addMetricPoint(metricPoint metricPoint, field func(metricPoint) float64, timerange api.Timerange, buckets [][]float64) bool { value := field(metricPoint) // The index to assign within the array is computed using the timestamp. // It floors to the nearest index. index := (metricPoint.Timestamp - timerange.Start()) / timerange.ResolutionMillis() if index < 0 || index >= int64(timerange.Slots()) { return false } buckets[index] = append(buckets[index], value) return true }