fluent-plugin-sql 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e7109d0e58f4123b5e6613a7e3127f973bc8737
4
- data.tar.gz: 357be8e497c0f70bb812fba8b1e2fc56ed6f6dc5
3
+ metadata.gz: d602eab48f2e5a82afd2805ea57198d5517bb1b7
4
+ data.tar.gz: fec9b91b4f26b49f9f8262adbf86e0a29b6b9c6a
5
5
  SHA512:
6
- metadata.gz: fa2466fca780b65bd04b58eac4d35da7d63129041b4b6ef7e64542994d50d02f5d0f089110005f17df649bc05a28a1108807d8ec9876e8115ed5bc254ed71391
7
- data.tar.gz: 1d329df0669bf47b5b116587b6db54c3ef0d1fb674f7bd09a58d6979dc6371fea3aac9a083bc385a31b78a42745d9359dba7cdb40313078f611b63b89f47f0c8
6
+ metadata.gz: 4e3909a2229451959f1ce21d69febb6ca102dae935da5944feb9895510f655fa0349b4f9b737bfdeba02533de55f7ac4dffab32f7cfe1e8beb80bb40864aa600
7
+ data.tar.gz: 82ec1c90fc5b4a0436a20235f2839d892a94eef18e3154823526b322a1f0547f0fe0b3019538b9e07a9b473e0b0581af65471452e3ec905524c21c94c5cdd4fd
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ sudo: false
2
+
3
+ before_install:
4
+ - gem install bundler
data/README.md CHANGED
@@ -30,7 +30,7 @@ It stores last selected rows to a file (named *state\_file*) to not forget the l
30
30
  ## Input: Configuration
31
31
 
32
32
  <source>
33
- type sql
33
+ @type sql
34
34
 
35
35
  host rdb_host
36
36
  database rdb_database
@@ -96,7 +96,7 @@ This plugin takes advantage of ActiveRecord underneath. For `host`, `port`, `dat
96
96
  ## Output: Configuration
97
97
 
98
98
  <match my.rdb.*>
99
- type sql
99
+ @type sql
100
100
  host rdb_host
101
101
  port 3306
102
102
  database rdb_database
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.5.0
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.require_paths = ['lib']
18
18
  gem.license = "Apache-2.0"
19
19
 
20
- gem.add_dependency "fluentd", [">= 0.10.58", "< 2"]
20
+ gem.add_dependency "fluentd", [">= 0.12.17", "< 2"]
21
21
  gem.add_dependency 'activerecord', "~> 4.2"
22
22
  gem.add_dependency 'activerecord-import', "~> 0.7"
23
23
  gem.add_development_dependency "rake", ">= 0.9.2"
@@ -22,17 +22,36 @@ module Fluent
22
22
  class SQLInput < Input
23
23
  Plugin.register_input('sql', self)
24
24
 
25
+ # For fluentd v0.12.16 or earlier
26
+ class << self
27
+ unless method_defined?(:desc)
28
+ def desc(description)
29
+ end
30
+ end
31
+ end
32
+
33
+ desc 'RDBMS host'
25
34
  config_param :host, :string
35
+ desc 'RDBMS port'
26
36
  config_param :port, :integer, :default => nil
37
+ desc 'RDBMS driver name.'
27
38
  config_param :adapter, :string
39
+ desc 'RDBMS database name'
28
40
  config_param :database, :string
41
+ desc 'RDBMS login user name'
29
42
  config_param :username, :string, :default => nil
43
+ desc 'RDBMS login password'
30
44
  config_param :password, :string, :default => nil, :secret => true
45
+ desc 'RDBMS socket path'
31
46
  config_param :socket, :string, :default => nil
32
47
 
48
+ desc 'path to a file to store last rows'
33
49
  config_param :state_file, :string, :default => nil
50
+ desc 'prefix of tags of events. actual tag will be this_tag_prefix.tables_tag (optional)'
34
51
  config_param :tag_prefix, :string, :default => nil
52
+ desc 'interval to run SQLs (optional)'
35
53
  config_param :select_interval, :time, :default => 60
54
+ desc 'limit of number of rows for each SQL(optional)'
36
55
  config_param :select_limit, :time, :default => 500
37
56
 
38
57
  unless method_defined?(:log)
@@ -86,8 +105,7 @@ module Fluent
86
105
 
87
106
  # if update_column is not set, here uses primary key
88
107
  unless @update_column
89
- columns = Hash[@model.columns.map {|c| [c.name, c] }]
90
- pk = columns[@model.primary_key]
108
+ pk = @model.columns_hash[@model.primary_key]
91
109
  unless pk
92
110
  raise "Composite primary key is not supported. Set update_column parameter to <table> section."
93
111
  end
@@ -105,7 +123,6 @@ module Fluent
105
123
  relation = relation.limit(limit) if limit > 0
106
124
 
107
125
  now = Engine.now
108
- entry_name = @model.table_name.singularize
109
126
 
110
127
  me = MultiEventStream.new
111
128
  relation.each do |obj|
@@ -226,6 +243,14 @@ module Fluent
226
243
  until @stop_flag
227
244
  sleep @select_interval
228
245
 
246
+ begin
247
+ conn = @base_model.connection
248
+ conn.active? || conn.reconnect!
249
+ rescue => e
250
+ log.warn "can't connect to database. Reconnect at next try"
251
+ next
252
+ end
253
+
229
254
  @tables.each do |t|
230
255
  begin
231
256
  last_record = @state_store.last_records[t.table]
@@ -5,13 +5,29 @@ module Fluent
5
5
  include SetTimeKeyMixin
6
6
  include SetTagKeyMixin
7
7
 
8
+ # For fluentd v0.12.16 or earlier
9
+ class << self
10
+ unless method_defined?(:desc)
11
+ def desc(description)
12
+ end
13
+ end
14
+ end
15
+
16
+ desc 'RDBMS host'
8
17
  config_param :host, :string
18
+ desc 'RDBMS port'
9
19
  config_param :port, :integer, :default => nil
20
+ desc 'RDBMS driver name.'
10
21
  config_param :adapter, :string
22
+ desc 'RDBMS login user name'
11
23
  config_param :username, :string, :default => nil
24
+ desc 'RDBMS login password'
12
25
  config_param :password, :string, :default => nil, :secret => true
26
+ desc 'RDBMS database name'
13
27
  config_param :database, :string
28
+ desc 'RDBMS socket path'
14
29
  config_param :socket, :string, :default => nil
30
+ desc 'remove the given prefix from the events'
15
31
  config_param :remove_tag_prefix, :string, :default => nil
16
32
 
17
33
  attr_accessor :tables
@@ -64,7 +80,7 @@ module Fluent
64
80
  @model.define_singleton_method(:model_name) { model_name }
65
81
 
66
82
  # TODO: check column_names and table schema
67
- columns = @model.columns.map { |column| column.name }.sort
83
+ # @model.column_names
68
84
  end
69
85
 
70
86
  def import(chunk)
@@ -199,6 +215,9 @@ module Fluent
199
215
  end
200
216
 
201
217
  def write(chunk)
218
+ conn = @base_model.connection
219
+ conn.active? || conn.reconnect!
220
+
202
221
  @tables.each { |table|
203
222
  if table.pattern.match(chunk.key)
204
223
  return table.import(chunk)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-13 00:00:00.000000000 Z
11
+ date: 2016-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.10.58
19
+ version: 0.12.17
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.10.58
29
+ version: 0.12.17
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
@@ -78,6 +78,7 @@ executables: []
78
78
  extensions: []
79
79
  extra_rdoc_files: []
80
80
  files:
81
+ - ".travis.yml"
81
82
  - Gemfile
82
83
  - README.md
83
84
  - Rakefile