_connectSpans() {
    if (!this._client) {
      // Only create once to avoid potential memory leak.
      // We create here (currently) for consistent error handling.
      this._client = this._createClient()
    }

    const metadata = this._getMetadata(
      this._licenseKey,
      this._runId,
      this._requestHeadersMap,
      process.env
    )

    const stream = this._client[this._method](metadata)
    this._setupSpanStreamObservers(stream)

    return stream
  }
Internal/private method for connection

Contains the actual logic that connects to the GRPC service.
"Connection" can be a somewhat misleading term here.  This method
invokes the either `recordSpan` or `recordSpanBatch` remote procedure call. Behind the scenes
this makes an http2 request with the metadata, and then returns
a stream for further writing.

@returns {object} stream duplex stream