Class: Reacter::Message::KairosdbParser

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

Class Method Summary collapse

Methods inherited from Parser

configure

Class Method Details

.detected?(message) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/reacter/parsers/kairosdb.rb', line 10

def detected?(message)
  false
end

.dump(message) ⇒ Object



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

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] || {})

  MultiJson.dump({
    :name      => message[:metric],
    :timestamp => message[:time].to_i,
    :value     => message[:value],
    :tags      => attributes
  })
end

.parse(message) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/reacter/parsers/kairosdb.rb', line 14

def parse(message)
  [*MultiJson.load(message)].collect{|i|
    {
      :metric     => i['name'],
      :time       => i['timestamp'].to_i,
      :value      => i['value'],
      :attributes => i['tags']
    }
  }
end