Class: Reacter::Message::GraphiteParser

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

Class Method Summary collapse

Methods inherited from Parser

configure

Class Method Details

.detected?(message) ⇒ Boolean

Graphite

|metric-----|value|epoch----|

> metric.name 12345 123456789

Returns:

  • (Boolean)


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

def detected?(message)
  (message =~ /^[\w\.]+ [\d\.\-]+ \d+$/ ? true : false)
end

.dump(message) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/reacter/parsers/graphite.rb', line 24

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]

  "#{message[:metric]} #{message[:value]} #{(message[:time] / 1000).to_i}".strip
end

.parse(message) ⇒ Object



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

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

  {
    :metric     => message[0],
    :value      => message[1].to_f,
    :time       => (message[2].to_i * 1000)
  }
end