func resetIntervalMetrics(m metrics.Map, t time.Time) { m.Set("current_interval_start", metrics.NewTime(t)) metrics.AddToMaps(currentTotalMessagesLatenciesKey, 0, m) metrics.AddToMaps(currentTotalMessagesKey, 0, m) metrics.AddToMaps(currentTotalErrorsLatenciesKey, 0, m) metrics.AddToMaps(currentTotalErrorsKey, 0, m) }
func processAndResetIntervalMetrics(m metrics.Map, td time.Duration, t time.Time) { msgLatenciesValue := m.Get(currentTotalMessagesLatenciesKey) msgNumberValue := m.Get(currentTotalMessagesKey) errLatenciesValue := m.Get(currentTotalErrorsLatenciesKey) errNumberValue := m.Get(currentTotalErrorsKey) m.Init() resetIntervalMetrics(m, t) metrics.SetRate(m, "last_messages_rate_sec", msgNumberValue, td, time.Second) metrics.SetRate(m, "last_errors_rate_sec", errNumberValue, td, time.Second) metrics.SetAverage(m, "last_messages_average_latency_msec", msgLatenciesValue, msgNumberValue, metrics.MilliPerNano, metrics.DefaultAverageLatencyJSONValue) metrics.SetAverage(m, "last_errors_average_latency_msec", errLatenciesValue, errNumberValue, metrics.MilliPerNano, metrics.DefaultAverageLatencyJSONValue) }