class Fluent::InfluxdbMetricsOutput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 16
def initialize
  super
end

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 20
def configure(conf)
  super
end
filter_keys() click to toggle source
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 28
def filter_keys
  @filter_keys ||= @fields.split(',').map(&:strip)
  @filter_keys
end
format(tag, time, record) click to toggle source
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 33
def format(tag, time, record)
  [tag, time, record].to_msgpack
end
format_record(tag, time, record) click to toggle source
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 60
def format_record(tag, time, record)
  metric = {time: time}

  filter_keys.each do |field|
    field_scored = field.gsub('.', '_')
    path = field.split('.')
    rec_pos = record[path.shift]
    path.each do |p|
      rec_pos = rec_pos[p] if rec_pos
    end

    if rec_pos
      metric[field_scored] = rec_pos
    end
  end

  return metric if metric.keys.length > 1
  nil
end
influx_client() click to toggle source
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 41
def influx_client
  @influxdb ||= InfluxDB::Client.new(@dbname, host: @host,
                                               port: @port,
                                               username: @user,
                                               password: @password)
  @influxdb
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 37
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 24
def start
  super
end
write(chunk) click to toggle source
# File lib/fluent/plugin/out_influxdb_metrics.rb, line 49
def write(chunk)
  bulk = []

  chunk.msgpack_each do |tag, time, record|
    formatted_record = format_record(tag, time, record)
    bulk << formatted_record if formatted_record
  end

  influx_client.write_point(@table, bulk, false, 's')
end