code: func (observer *Observer) UpdateQueueStats(queue string) {
  	queueStats := &QueueStat{ConsumerStats: make(map[string]*ConsumerStat)}
  
  	queueStats.InputRateSecond = observer.fetchStat(queueInputRateKey(queue), 1)
  	queueStats.InputSizeSecond = observer.fetchStat(queueInputSizeKey(queue), 1)
  	queueStats.FailSizeSecond = observer.fetchStat(queueFailedSizeKey(queue), 1)
  
  	queueStats.InputRateMinute = observer.fetchStat(queueInputRateKey(queue), 60)
  	queueStats.InputSizeMinute = observer.fetchStat(queueInputSizeKey(queue), 60)
  	queueStats.FailSizeMinute = observer.fetchStat(queueFailedSizeKey(queue), 60)
  
  	queueStats.InputRateHour = observer.fetchStat(queueInputRateKey(queue), 3600)
  	queueStats.InputSizeHour = observer.fetchStat(queueInputSizeKey(queue), 3600)
  	queueStats.FailSizeHour = observer.fetchStat(queueFailedSizeKey(queue), 3600)
  
  	queueStats.WorkRateSecond = 0
  	queueStats.WorkRateMinute = 0
  	queueStats.WorkRateHour = 0
  
  	consumers, err := observer.getConsumers(queue)
  	if err != nil {
  		log.Fatalf("ERROR FETCHING CONSUMERS for %s %s", queue, err.Error())
  		return
  	}
  
  	for _, consumer := range consumers {
  		stat := &ConsumerStat{}
  
  		stat.WorkRateSecond = observer.fetchStat(consumerWorkingRateKey(queue, consumer), 1)
  		stat.WorkRateMinute = observer.fetchStat(consumerWorkingRateKey(queue, consumer), 60)
  		stat.WorkRateHour = observer.fetchStat(consumerWorkingRateKey(queue, consumer), 3600)
  
  		queueStats.WorkRateSecond += stat.WorkRateSecond
  		queueStats.WorkRateMinute += stat.WorkRateMinute
  		queueStats.WorkRateHour += stat.WorkRateHour
  
  		queueStats.ConsumerStats[consumer] = stat
  	}
  
  	observer.Stats[queue] = queueStats
  }
docs: // UpdateQueueStats fetches stats for one specific queue and its consumers