class Fluent::LeftronicOutput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_leftronic.rb, line 12
def initialize
  Encoding.default_internal = "UTF-8"
  require 'uri'
  require 'json'
  require 'leftronic'
  super
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_leftronic.rb, line 20
def configure(conf)
  super
  if @access_key.nil? || @access_key.empty?
    raise ConfigError, "leftronic configure requires 'access_key'"
  end

  if @stream_name.nil? || @stream_name.empty?
    raise ConfigError, "leftronic configure requires 'stream_name'"
  end

  if @graph_type == 'number' or @graph_type == 'line'
    if @value.nil? || @value.size == 0
      raise ConfigError, "leftronic configure requires 'value'"
    end
  end
  
  unless @display_keys.nil?
    @default_key = false
    @leftronic_display_hash = eval(@display_keys)
    $log.info @leftronic_display_hash
  else 
    @default_key = true
  end
  @leftronic = Leftronic.new @access_key
end
format(tag, time, record) click to toggle source
# File lib/fluent/plugin/out_leftronic.rb, line 54
def format(tag, time, record)
  [tag, time, record].to_msgpack
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_leftronic.rb, line 50
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_leftronic.rb, line 46
def start
  super
end
write(chunk) click to toggle source
# File lib/fluent/plugin/out_leftronic.rb, line 58
def write(chunk)
  chunk.msgpack_each do |tag, time, record|
    next if record.nil? || record.empty?
    if @graph_type == 'number' or @graph_type == 'line'
      next unless record.has_key? @value
      @leftronic.number(@stream_name ,record[@value].to_i)
    elsif @graph_type == 'leaderboard' or @graph_type == 'bar' or @graph_type == 'pie'
      result = Hash.new
      record.each {|key,value|
        unless name_key_pattern.nil?
          next if key !~ /#{@name_key_pattern}/
        end

        unless @default_key
          display_key = @leftronic_display_hash.has_key?(key) ? @leftronic_display_hash[key] : key
        else
          display_key = key
        end
        result[display_key] = value.to_i
      }
      $log.info result
      @leftronic.leaderboard(@stream_name,[result])
    end
  end
end