in pipeline/inputs/aggregator.go [87:103]
func (h *Aggregator) AddReport(report metrics.MetricReport) error {
glog.V(2).Infof("aggregator: received report: %v", report.Name)
if err := report.Validate(h.metric); err != nil {
return err
}
h.closeMutex.RLock()
defer h.closeMutex.RUnlock()
if h.closed {
return errors.New("aggregator: AddReport called on closed aggregator")
}
msg := addMsg{
report: report,
result: make(chan error, 1),
}
h.add <- msg
return <-msg.result
}