module FFWD::Processor

Public Class Methods

category() click to toggle source
# File lib/ffwd/processor.rb, line 81
def self.category
  'processor'
end
included(mod) click to toggle source
# File lib/ffwd/processor.rb, line 85
def self.included(mod)
  mod.extend ClassMethods
end
load_discovered(source) click to toggle source
# File lib/ffwd/processor.rb, line 89
def self.load_discovered source
end
load_processors(config) click to toggle source

setup hash of processor setup classes.

# File lib/ffwd/processor.rb, line 93
def self.load_processors config
  registry.map do |name, klass|
    unless klass.respond_to? :prepare
      raise "Processor #{klass} does not have a 'prepare' method"
    end

    config = klass.prepare Hash[config[name] || {}]
    Setup.new name, klass, config
  end
end
registry() click to toggle source
# File lib/ffwd/processor.rb, line 77
def self.registry
  @@registry ||= {}
end

Public Instance Methods

name() click to toggle source
# File lib/ffwd/processor.rb, line 73
def name
  self.class.name
end
process(m) click to toggle source

Module to include for processors.

Usage:

class MyProcessor

include FFWD::Processor

register_processor "my_processor"

def initialize opts
  .. read options ..
end

def start emitter
  ... setup EventMachine tasks ...
end

def process emitter, m
  ... process a single metric ...
  emitter.metrics.emit ...
end

end

# File lib/ffwd/processor.rb, line 59
def process m
  raise Exception.new("process: Not Implemented")
end