code: func StartSession(params *TelemetrySessionParams, statsEngine stats.Engine) error {
  	backoff := retry.NewExponentialBackoff(time.Second, 1*time.Minute, 0.2, 2)
  	for {
  		tcsError := startTelemetrySession(params, statsEngine)
  		if tcsError == nil || tcsError == io.EOF {
  			seelog.Info("TCS Websocket connection closed for a valid reason")
  			backoff.Reset()
  		} else {
  			seelog.Infof("Error from tcs; backing off: %v", tcsError)
  			params.time().Sleep(backoff.Duration())
  		}
  	}
  }
docs: // StartSession creates a session with the backend and handles requests
  // using the passed in arguments.
  // The engine is expected to initialized and gathering container metrics by
  // the time the websocket client starts using it.