class ElasticAPM::Transport::Connection

def initialize(config, metadata)

rubocop:disable Metrics/MethodLength, Metrics/AbcSize
def initialize(config, metadata)
  @config = config
  @metadata = metadata.to_json
  @url = config.server_url + '/intake/v2/events'
  headers =
    (@config.http_compression? ? GZIP_HEADERS : HEADERS).dup
  if (token = config.secret_token)
    headers['Authorization'] = "Bearer #{token}"
  end
  if config.use_ssl? && config.server_ca_cert
    @ssl_context = OpenSSL::SSL::SSLContext.new
    @ssl_context.ca_file = config.server_ca_cert
  end
  @client = HTTP.headers(headers).persistent(@url)
  @mutex = Mutex.new
end