From 11128946392804a9d1354f870eea9f3757b8928a Mon Sep 17 00:00:00 2001 From: Gavi Hirsch <50673502+ghirsch1@users.noreply.github.com> Date: Fri, 11 Sep 2020 14:04:42 -0700 Subject: [PATCH] clear count stats after logging them --- batchconsumer/stats/stats.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/batchconsumer/stats/stats.go b/batchconsumer/stats/stats.go index acc3800..24b87f9 100644 --- a/batchconsumer/stats/stats.go +++ b/batchconsumer/stats/stats.go @@ -30,16 +30,17 @@ type datum struct { var queue = make(chan datum, 1000) func init() { - data := map[string]int{} + countData := map[string]int{} + gaugeData := map[string]int{} tick := time.Tick(time.Minute) go func() { for { select { case d := <-queue: if d.category == "counter" { - data[d.name] = data[d.name] + d.value + countData[d.name] = countData[d.name] + d.value } else if d.category == "gauge" { - data[d.name] = d.value + gaugeData[d.name] = d.value } else { log.ErrorD("unknown-stat-category", logger.M{"category": d.category}) } @@ -48,10 +49,14 @@ func init() { for _, k := range DefaultCounters { tmp[k] = 0 } - for k, v := range data { + for k, v := range countData { + tmp[k] = v + } + for k, v := range gaugeData { tmp[k] = v } log.InfoD("stats", tmp) + countData = map[string]int{} } } }()