class Wavefront::Writer::Socket

Everything specific to writing points to a Unix datagram socket.

Public Instance Methods

close() click to toggle source
# File lib/wavefront-sdk/writers/socket.rb, line 27
def close
  return if opts[:noop]

  logger.log('Closing socket connection.', :debug)
  conn.close
end
open() click to toggle source

Make a connection to a Unix datagram socket, putting the descriptor in instance variable @conn. This requires the name of the socket file in creds @return [UnixSocket]

# File lib/wavefront-sdk/writers/socket.rb, line 17
def open
  if opts[:noop]
    logger.log('No-op requested. Not opening socket connection.')
    return true
  end

  logger.log("Connecting to #{creds[:socket]}.", :debug)
  open_socket(creds[:socket])
end
validate_credentials(creds) click to toggle source
# File lib/wavefront-sdk/writers/socket.rb, line 34
def validate_credentials(creds)
  return true if creds.key?(:socket) && creds[:socket]

  raise(Wavefront::Exception::CredentialError,
        'credentials must contain socket file path')
end

Private Instance Methods

_send_point(point) click to toggle source

@param point [String] point or points in native Wavefront format.

# File lib/wavefront-sdk/writers/socket.rb, line 52
def _send_point(point)
  return if opts[:noop]

  conn.write(point)
end
open_socket(socket) click to toggle source
# File lib/wavefront-sdk/writers/socket.rb, line 43
def open_socket(socket)
  @conn = UNIXSocket.new(socket)
rescue StandardError => e
  logger.log(e, :error)
  raise Wavefront::Exception::InvalidEndpoint
end