class Hoss::Transport::Connection

@api private

Attributes

http[R]

Public Class Methods

new(config) click to toggle source
# File lib/hoss/transport/connection.rb, line 26
def initialize(config)
  @config = config
  @metadata = JSON.fast_generate(
    Serializers::MetadataSerializer.new(config).build(
      Metadata.new(config)
    )
  )
  @url = @config.ingress_host
  @mutex = Mutex.new
end

Public Instance Methods

write(str) click to toggle source
# File lib/hoss/transport/connection.rb, line 38
def write(str)
  debug "Sending report"
  uri = URI(@url)
  req = Net::HTTP::Post.new(
    uri,
    'Authorization' => "Bearer #{@config.api_key}", #"Basic " + Base64.encode64("#{@config.api_key}:"),
    'Content-Type' => 'application/json',
    'HOSS-SKIP-INSTRUMENTATION' => 'true',
  )
  req.body = str
  res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(req)
  end
  raise unless res.code == "200"
end