Class: Reacter::Message::TsdbParser

Inherits:
Parser
  • Object
show all
Defined in:
lib/reacter/parsers/tsdb.rb

Class Method Summary collapse

Methods inherited from Parser

configure

Class Method Details

.detected?(message) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/reacter/parsers/tsdb.rb', line 7

def detected?(message)
  return (message.upcase[0..4] == 'PUT ')
end

.dump(message) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/reacter/parsers/tsdb.rb', line 22

def dump(message)
  message = message.to_h if message.is_a?(Message)
  return nil unless message.is_a?(Hash)
  return nil unless message[:source]
  return nil unless message[:metric]
  return nil unless message[:value]
  return nil unless message[:time]

  attributes = {
    :host => message[:source]
  }.merge(message[:attributes] || {})

  ([
    'PUT',
    message[:metric],
    (message[:time] / 1000).to_i,
    message[:value],
    attributes.collect{|k,v| "#{k}=#{v}" }.join(' ')
  ].join(' ')).strip
end

.parse(message) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/reacter/parsers/tsdb.rb', line 11

def parse(message)
  message = message.split(' ')

  {
    :metric     => message[1],
    :time       => (message[2].to_i * 1000),
    :value      => message[3].to_f,
    :attributes => Hash[message[4..-1].collect{|i| i.split('=',2) }]
  }
end