code: func (c *Client) Start() {
  	c.mu.RLock()
  	if c.running {
  		c.mu.RUnlock()
  		return
  	}
  	c.mu.RUnlock()
  
  	if c.snifferEnabled {
  		go c.sniffer()
  	}
  	if c.healthcheckEnabled {
  		go c.healthchecker()
  	}
  
  	c.mu.Lock()
  	c.running = true
  	c.mu.Unlock()
  
  	c.infof("elastic: client started")
  }
docs: // Start starts the background processes like sniffing the cluster and
  // periodic health checks. You don't need to run Start when creating a
  // client with NewClient; the background processes are run by default.
  //
  // If the background processes are already running, this is a no-op.