fluent-plugin-sql 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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