lib/fluent/plugin/out_sql.rb in fluent-plugin-sql-0.4.4 vs lib/fluent/plugin/out_sql.rb in fluent-plugin-sql-0.5.0
- old
+ new
@@ -3,17 +3,33 @@
Plugin.register_output('sql', self)
include SetTimeKeyMixin
include SetTagKeyMixin
+ # For fluentd v0.12.16 or earlier
+ class << self
+ unless method_defined?(:desc)
+ def desc(description)
+ end
+ end
+ end
+
+ desc 'RDBMS host'
config_param :host, :string
+ desc 'RDBMS port'
config_param :port, :integer, :default => nil
+ desc 'RDBMS driver name.'
config_param :adapter, :string
+ desc 'RDBMS login user name'
config_param :username, :string, :default => nil
+ desc 'RDBMS login password'
config_param :password, :string, :default => nil, :secret => true
+ desc 'RDBMS database name'
config_param :database, :string
+ desc 'RDBMS socket path'
config_param :socket, :string, :default => nil
+ desc 'remove the given prefix from the events'
config_param :remove_tag_prefix, :string, :default => nil
attr_accessor :tables
unless method_defined?(:log)
@@ -62,11 +78,11 @@
base_model.const_set(class_name, @model)
model_name = ActiveModel::Name.new(@model, nil, class_name)
@model.define_singleton_method(:model_name) { model_name }
# TODO: check column_names and table schema
- columns = @model.columns.map { |column| column.name }.sort
+ # @model.column_names
end
def import(chunk)
records = []
chunk.msgpack_each { |tag, time, data|
@@ -197,9 +213,12 @@
def format(tag, time, record)
[tag, time, record].to_msgpack
end
def write(chunk)
+ conn = @base_model.connection
+ conn.active? || conn.reconnect!
+
@tables.each { |table|
if table.pattern.match(chunk.key)
return table.import(chunk)
end
}