func (h *Handler) HandleMessage(m *nsq.Message) error { ms, err := msg.MetricDataFromMsg(m.Body) if err != nil { log.Error(3, "skipping message. %s", err) return nil } msgsAge.Value(time.Now().Sub(ms.Produced).Nanoseconds() / 1000) err = ms.DecodeMetricData() if err != nil { log.Error(3, "skipping message. %s", err) return nil } metricsPerMessage.Value(int64(len(ms.Metrics))) metricsReceived.Inc(int64(len(ms.Metrics))) for _, metric := range ms.Metrics { if metric.Time == 0 { log.Warn("invalid metric. metric.Time is 0. %s", metric.Id()) } else { m := h.metrics.GetOrCreate(metric.Id()) m.Add(uint32(metric.Time), metric.Value) } } return nil }
func (k *StdoutHandler) HandleMessage(m *nsq.Message) error { ms, err := msg.MetricDataFromMsg(m.Body) if err != nil { log.Error(3, "%s: skipping message", err.Error()) return nil } err = ms.DecodeMetricData() if err != nil { log.Error(3, "%s: skipping message", err.Error()) return nil } for _, m := range ms.Metrics { fmt.Println(m.Name, m.Time, m.Value, m.Tags) } return nil }