class Fluent::ConsulOutput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_consul.rb, line 9
def initialize
  super
  require 'diplomat'
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_consul.rb, line 14
def configure(conf)
  super
  ::Diplomat.configure do |config|
    config.url = @consul_uri
  end
end
consul_kvs_fmt(data) click to toggle source
# File lib/fluent/plugin/out_consul.rb, line 33
def consul_kvs_fmt(data)
  kvs = []

  if data.is_a?(Array) || data.is_a?(Hash)
    data.each_key do |k|
      r_kvs = consul_kvs_fmt(data[k])
      r_kvs.each do |r_kv|
        kvs << { key: '/' + k + r_kv[:key], value: r_kv[:value] }
      end
    end
  else
    kvs << { key: '', value: data }
  end

  kvs
end
format(tag, time, record) click to toggle source
# File lib/fluent/plugin/out_consul.rb, line 21
def format(tag, time, record)
  [tag, time, record].to_msgpack
end
write(chunk) click to toggle source
# File lib/fluent/plugin/out_consul.rb, line 25
def write(chunk)
  chunk.msgpack_each do |tag, time, record|
    consul_kvs_fmt(record).each do |kv|
      ::Diplomat.put(@kv_prefix + kv[:key].to_s, kv[:value].to_s)
    end
  end
end