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