code: func (p *producerImpl) janitor() {
  	ticker := time.NewTicker(p.janitorRunInterval)
  	for {
  		select {
  		case _ = <-ticker.C:
  			for k, v := range p.store.Objects() {
  				o := v.(producers.MetricsMessage)
  
  				age := time.Now().Sub(time.Unix(o.Timestamp, 0))
  				if age > p.config.CacheExpiry {
  					httpLog.Debugf("Removing stale object %s; last updated %d seconds ago", k, age/time.Second)
  					p.store.Delete(k)
  				}
  			}
  		}
  	}
  }
docs: // janitor analyzes the objects in the store and removes stale objects. An
  // object is considered stale when the top-level timestamp of its MetricsMessage
  // has exceeded the CacheExpiry, which is calculated as a multiple of the
  // collector's polling period. This function should be run in its own goroutine.