code: func (e *ecuStats) run() {
  	ticker := time.NewTicker(e.ecu.cfg.UpdateInterval)
  	for {
  		e.stats.lock.Lock()
  		e.stats.lastUpdate = time.Now()
  		e.stats.lock.Unlock()
  
  		log.Info("Updating ECU statistics from Seesaw Engine...")
  		if err := e.update(); err != nil {
  			log.Warning(err)
  		} else {
  			e.stats.lock.Lock()
  			e.stats.lastSuccess = time.Now()
  			e.stats.lock.Unlock()
  		}
  		for _, p := range e.publishers {
  			p.update(e.stats)
  		}
  		<-ticker.C
  	}
  }
docs: // run attempts to update the cached statistics from the Seesaw Engine at
  // regular intervals.