Method: Termite::HasturLogger#send_message

Defined in:
lib/termite/hastur_logger.rb

#send_message(severity, raw_message, app_data, time = Time.now, data = '{}') ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/termite/hastur_logger.rb', line 12

def send_message(severity, raw_message, app_data, time=Time.now, data='{}')
  severity = Logger::LOGGER_LEVEL_MAP.invert[severity].to_s
  tid = Ecology.thread_id(::Thread.current)
  hostname = Socket.gethostname
  pid = Process.pid
  application, component = app_data[:app], app_data[:component]

  message = {
    :_route => :log,
    :timestamp => to_usec(time),
    :message => raw_message
  }

  labels = {
    :severity => severity,
    :pid => pid,
    :tid => tid,
    :app => application,
    :component => component,
    :hostname => hostname
  }

  labels.merge!(MultiJson.decode(data)) if data && data != '{}'
  labels.merge!(@labels) if @labels && !@labels.empty?
  message[:labels] = labels

  @socket.send MultiJson.encode(message), 0, @addr, @port
end