fluent-plugin-rds-genlog 0.0.9

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f6791b993428fe080313f2bbc4ae4a41ace460b0
4
+ data.tar.gz: 6618063d54c45e2a996998e3de606556ccb89dbb
5
+ SHA512:
6
+ metadata.gz: c649ba4f4ec43197d6cb5160e90fcc9527631eb7563818e1ae6d89745bb759f9356a3dfe8ac5b10fcbb140cc9f43a1a6108fa2450b14a4c128606e943fd33739
7
+ data.tar.gz: 7002a8c9d2ba7556a0b16f8f40ae1cb7288b7875902ddbe39a9bb56f2b9030945b1baf9305905223f20296a848394660b2f00aa9be12ae8531ada21913c73142
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2
4
+ - jruby
5
+ - rbx-2
6
+ # uncomment and edit the following line if your project needs to run something other than `rake`:
7
+ # script: bundle exec rspec spec
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in fluent-plugin-rds-genlog.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Jen LaGrutta
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 kenjiskywalker
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # This plugin was made based off the slowlog plugin code. This new plugin fluent-plugin-rds-genlog [![Build Status](https://travis-ci.org/jenlagrutta/fluent-plugin-rds-genlog.png)](https://travis-ci.org/jenlagrutta/fluent-plugin-rds-genlog/)
2
+
3
+
4
+ ## RDS Setting
5
+
6
+ [Working with MySQL Database Log Files / aws documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html)
7
+
8
+ - Set the `general_log` parameter to `1`
9
+
10
+ ## Overview
11
+ ***AWS RDS general_log*** input plugin.
12
+
13
+ 1. **"CALL mysql.rds_rotate_general_log"**
14
+ 2. **"SELECT * FROM general_log_backup"**
15
+ 3. **"INSERT INTO yourdb.general_log_custom_backup SELECT * FROM general_log_backup"** (if you want to take a backup)
16
+
17
+ every 10 seconds from AWS RDS.
18
+
19
+ ## Configuration
20
+
21
+ ```config
22
+ <source>
23
+ type rds_genlog
24
+ tag rds-genlog
25
+ host [RDS Hostname]
26
+ username [RDS Username]
27
+ password [RDS Password]
28
+ backup_table [Your Backup Tablename]
29
+ </source>
30
+ ```
31
+
32
+ ### Example GET RDS general_log
33
+
34
+ ```config
35
+ <source>
36
+ type rds_genlog
37
+ tag rds-genlog
38
+ host [RDS Hostname]
39
+ username [RDS Username]
40
+ password [RDS Password]
41
+ interval 10
42
+ backup_table [Your Backup Tablename]
43
+ </source>
44
+
45
+ <match rds-genlog>
46
+ type copy
47
+ <store>
48
+ type file
49
+ path /var/log/general_log
50
+ </store>
51
+ </match>
52
+ ```
53
+
54
+ #### output data format
55
+
56
+ ```
57
+ 2013-03-08T16:04:43+09:00 rds-genlog {"start_time":"2013-03-08 07:04:38","user_host":"rds_db[rds_db] @ [192.0.2.10]","event_time":"00:00:00","command_type":"QUERY", "server_id":"100000000","argument":"select foo from bar"}
58
+ 2013-03-08T16:04:43+09:00 rds-genlog {"start_time":"2013-03-08 07:04:38","user_host":"rds_db[rds_db] @ [192.0.2.10]","event_time":"00:00:00","command_type":"QUERY", "server_id":"100000000","argument":"select sleep(2)"}
59
+ ```
60
+
61
+ #### if not connect
62
+
63
+ - td-agent.log
64
+
65
+ ```
66
+ 2013-06-29 00:32:55 +0900 [error]: fluent-plugin-rds-genlog: cannot connect RDS
67
+ ```
68
+
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require "bundler/gem_tasks"
4
+
5
+ require "rake/testtask"
6
+ Rake::TestTask.new(:test) do |test|
7
+ test.libs << 'lib' << 'test'
8
+ test.pattern = 'test/**/test_*.rb'
9
+ test.verbose = true
10
+ end
11
+
12
+ task :default => :test
Binary file
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "fluent-plugin-rds-genlog"
7
+ gem.version = "0.0.9"
8
+ gem.authors = ["lagrutta", "jen"]
9
+ gem.email = ["jen@tune.com"]
10
+ gem.description = "Amazon RDS gen_log input plugin for Fluent event collector"
11
+ gem.homepage = "https://github.com/hasjenL/fluent-plugin-rds-genlog"
12
+ gem.summary = gem.description
13
+ gem.files = `git ls-files`.split($/)
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ["lib"]
17
+
18
+ if RUBY_VERSION > '2.0.0'
19
+ gem.add_dependency "fluentd"
20
+ elsif RUBY_VERSION > '1.9.2'
21
+ gem.add_dependency "fluentd", "~> 0.12.29"
22
+ else
23
+ gem.add_dependency "fluentd", "<= 0.10.55"
24
+ end
25
+
26
+ if RUBY_VERSION <= '2.0.0'
27
+ gem.add_dependency "json", "< 2"
28
+ end
29
+
30
+ if RUBY_VERSION <= '1.9.2'
31
+ gem.add_development_dependency "rake", "<= 11"
32
+ else
33
+ gem.add_development_dependency "rake", ">= 10.0.4"
34
+ end
35
+
36
+ gem.add_dependency "mysql2", "~> 0.3.11"
37
+ gem.add_development_dependency "test-unit", "~> 3.1.3"
38
+ gem.add_development_dependency "timecop"
39
+ end
@@ -0,0 +1,112 @@
1
+ require 'fluent/input'
2
+
3
+ class Fluent::Rds_GenlogInput < Fluent::Input
4
+ Fluent::Plugin.register_input("rds_genlog", self)
5
+
6
+ # To support log_level option implemented by Fluentd v0.10.43
7
+ unless method_defined?(:log)
8
+ define_method("log") { $log }
9
+ end
10
+
11
+ # Define `router` method of v0.12 to support v0.10 or earlier
12
+ unless method_defined?(:router)
13
+ define_method("router") { Fluent::Engine }
14
+ end
15
+
16
+ config_param :tag, :string
17
+ config_param :host, :string, :default => nil
18
+ config_param :port, :integer, :default => 3306
19
+ config_param :username, :string, :default => nil
20
+ config_param :password, :string, :default => nil, :secret => true
21
+ config_param :interval, :integer, :default => 10
22
+ config_param :backup_table, :string, :default => nil
23
+
24
+ def initialize
25
+ super
26
+ require 'mysql2'
27
+ end
28
+
29
+ def configure(conf)
30
+ super
31
+ begin
32
+ @client = create_mysql_client
33
+ rescue
34
+ log.error "fluent-plugin-rds-genlog: cannot connect RDS"
35
+ end
36
+ end
37
+
38
+ def start
39
+ super
40
+ if @backup_table
41
+ @client.query("CREATE TABLE IF NOT EXISTS #{@backup_table} LIKE general_log")
42
+ end
43
+
44
+ @loop = Coolio::Loop.new
45
+ timer = TimerWatcher.new(@interval, true, log, &method(:output))
46
+ @loop.attach(timer)
47
+ @watcher = Thread.new(&method(:watch))
48
+ end
49
+
50
+ def shutdown
51
+ super
52
+ @watcher.terminate
53
+ @watcher.join
54
+ end
55
+
56
+ private
57
+ def watch
58
+ @loop.run
59
+ rescue => e
60
+ log.error(e.message)
61
+ log.error_backtrace(e.backtrace)
62
+ end
63
+
64
+ def output
65
+ @client.query('CALL mysql.rds_rotate_general_log')
66
+
67
+ gen_log_data = []
68
+ gen_log_data = @client.query('SELECT * FROM general_log_backup', :cast => false)
69
+
70
+ gen_log_data.each do |row|
71
+ row.each_key {|key| row[key].force_encoding(Encoding::ASCII_8BIT) if row[key].is_a?(String)}
72
+ router.emit(tag, Fluent::Engine.now, row)
73
+ end
74
+
75
+ if @backup_table
76
+ @client.query("INSERT INTO #{@backup_table} SELECT * FROM general_log_backup")
77
+ end
78
+ rescue Mysql2::Error => e
79
+ @log.error(e.message)
80
+ @log.error_backtrace(e.backtrace)
81
+
82
+ unless @client.ping
83
+ @log.info('fluent-plugin-rds-genlog: try to reconnect to RDS')
84
+ @client = create_mysql_client
85
+ end
86
+ end
87
+
88
+ def create_mysql_client
89
+ Mysql2::Client.new({
90
+ :host => @host,
91
+ :port => @port,
92
+ :username => @username,
93
+ :password => @password,
94
+ :database => 'mysql'
95
+ })
96
+ end
97
+
98
+ class TimerWatcher < Coolio::TimerWatcher
99
+ def initialize(interval, repeat, log, &callback)
100
+ @callback = callback
101
+ @log = log
102
+ super(interval, repeat)
103
+ end
104
+
105
+ def on_timer
106
+ @callback.call
107
+ rescue => e
108
+ @log.error(e.message)
109
+ @log.error_backtrace(e.backtrace)
110
+ end
111
+ end
112
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ Bundler.setup(:default, :development)
6
+ rescue Bundler::BundlerError => e
7
+ $stderr.puts e.message
8
+ $stderr.puts "Run `bundle install` to install missing gems"
9
+ exit e.status_code
10
+ end
11
+ require "test/unit"
12
+ require "mysql2"
13
+ require "timecop"
14
+
15
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
16
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
17
+ require "fluent/test"
18
+ unless ENV.has_key?("VERBOSE")
19
+ nulllogger = Object.new
20
+ nulllogger.instance_eval {|obj|
21
+ def method_missing(method, *args)
22
+ #pass
23
+ end
24
+ }
25
+ $log = nulllogger
26
+ end
27
+
28
+ require "fluent/plugin/in_rds_genlog"
29
+
30
+ class Test::Unit::TestCase
31
+ end
32
+
@@ -0,0 +1,143 @@
1
+ require 'helper'
2
+
3
+ class Rds_GenlogInputTest < Test::Unit::TestCase
4
+ class << self
5
+ def startup
6
+ setup_database
7
+ Timecop.freeze(Time.parse('2015/05/24 18:30 UTC'))
8
+ end
9
+
10
+ def shutdown
11
+ cleanup_database
12
+ end
13
+
14
+ def setup_database
15
+ client = mysql2_client
16
+ client.query("GRANT ALL ON *.* TO test_rds_user@localhost IDENTIFIED BY 'test_rds_password'")
17
+
18
+ client.query <<-EOS
19
+ CREATE PROCEDURE `mysql`.`rds_rotate_general_log`()
20
+ BEGIN
21
+ DECLARE sql_logging BOOLEAN;
22
+ select @@sql_log_bin into sql_logging;
23
+ set @@sql_log_bin=off;
24
+ CREATE TABLE IF NOT EXISTS mysql.general_log2 LIKE mysql.general_log;
25
+
26
+ #{insert_general_log_sql}
27
+
28
+ DROP TABLE IF EXISTS mysql.general_log_backup;
29
+ RENAME TABLE mysql.geneal_log TO mysql.general_log_backup, mysql.general_log2 TO mysql.general_log;
30
+ set @@sql_log_bin=sql_logging;
31
+ END
32
+ EOS
33
+ end
34
+
35
+ def cleanup_database
36
+ client = mysql2_client
37
+ client.query("DROP USER test_rds_user@localhost")
38
+ client.query("DROP PROCEDURE `mysql`.`rds_rotate_general_log`")
39
+ client.query("DROP TABLE `mysql`.`general_log_custom_backup`")
40
+ end
41
+
42
+ def insert_general_log_sql
43
+ if has_thread_id?
44
+ <<-EOS
45
+ INSERT INTO `mysql`.`general_log2` (
46
+ `event_time`, `user_host`, `command_type`, `server_id`, `argument`, `thread_id`)
47
+ VALUES
48
+ ('2015-09-29 15:43:44', 'root@localhost', 'QUERY', 1, 'SELECT 1', 0),
49
+ ('2015-09-29 15:43:45', 'root@localhost', 'QUERY', 1, 'SELECT 2', 0);
50
+ EOS
51
+ else
52
+ <<-EOS
53
+ INSERT INTO `mysql`.`general_log2` (
54
+ `event_time`, `user_host`, `command_type`, `server_id`, `argument`, `thread_id`)
55
+ VALUES
56
+ ('2015-09-29 15:43:44', 'root@localhost', 'QUERY', 1, 'SELECT 1', 0)
57
+ ,('2015-09-29 15:43:45', 'root@localhost', 'QUERY', 1, 'SELECT 2', 0)
58
+ ;
59
+ EOS
60
+ end
61
+ end
62
+
63
+ def has_thread_id?
64
+ client = mysql2_client
65
+ fields = client.query("SHOW FULL FIELDS FROM `mysql`.`general_log`").map {|r| r['Field'] }
66
+ fields.include?('thread_id')
67
+ end
68
+
69
+ def mysql2_client
70
+ Mysql2::Client.new(:username => 'root')
71
+ end
72
+ end
73
+
74
+ def rotate_general_log
75
+ client = self.class.mysql2_client
76
+ client.query("CALL `mysql`.`rds_rotate_general_log`")
77
+ end
78
+
79
+ def setup
80
+ Fluent::Test.setup
81
+ rotate_general_log
82
+ end
83
+
84
+ CONFIG = %[
85
+ tag rds-genlog
86
+ host localhost
87
+ username test_rds_user
88
+ password test_rds_password
89
+ interval 0
90
+ backup_table mysql.general_log_custom_backup
91
+ ]
92
+
93
+ def create_driver(conf = CONFIG)
94
+ Fluent::Test::InputTestDriver.new(Fluent::Rds_GenlogInput).configure(conf)
95
+ end
96
+
97
+ def test_configure
98
+ d = create_driver
99
+ assert_equal 'rds-genlog', d.instance.tag
100
+ assert_equal 'localhost', d.instance.host
101
+ assert_equal 'test_rds_user', d.instance.username
102
+ assert_equal 'test_rds_password', d.instance.password
103
+ assert_equal 0, d.instance.interval
104
+ assert_equal 'mysql.general_log_custom_backup', d.instance.backup_table
105
+ end
106
+
107
+ def test_output
108
+ d = create_driver
109
+ d.run
110
+ records = d.emits
111
+
112
+ unless self.class.has_thread_id?
113
+ records.each {|r| r[2]["thread_id"] = "0" }
114
+ end
115
+
116
+ assert_equal [
117
+ ["rds-genlog", 1432492200, {"even_time"=>"2015-09-29 15:43:44", "user_host"=>"root@localhost", "command_type"=>"QUERY", "server_id"=>"1", "argument"=>"SELECT 1", "thread_id"=>"0"}],
118
+ ["rds-genlog", 1432492200, {"even_time"=>"2015-09-29 15:43:44", "user_host"=>"root@localhost", "command_type"=>"QUERY", "server_id"=>"1", "argument"=>"SELECT 2", "thread_id"=>"0"}],
119
+ ], records
120
+ end
121
+
122
+ def test_backup
123
+ d = create_driver
124
+ d.run
125
+
126
+ records = []
127
+ client = self.class.mysql2_client
128
+ general_logs = client.query('SELECT * FROM `mysql`.`general_log_custom_backup`', :cast => false)
129
+ general_logs.each do |row|
130
+ row.each_key {|key| row[key].force_encoding(Encoding::ASCII_8BIT) if row[key].is_a?(String)}
131
+ records.push(row)
132
+ end
133
+
134
+ unless self.class.has_thread_id?
135
+ records.each {|r| r["thread_id"] = "0" }
136
+ end
137
+
138
+ assert_equal [
139
+ {"start_time"=>"2015-09-29 15:43:44", "user_host"=>"root@localhost", "command_type"=>"QUERY", "server_id"=>"1", "argument"=>"SELECT 1", "thread_id"=>"0"},
140
+ {"start_time"=>"2015-09-29 15:43:45", "user_host"=>"root@localhost", "command_type"=>"QUERY", "server_id"=>"1", "argument"=>"SELECT 2", "thread_id"=>"0"},
141
+ ], records
142
+ end
143
+ end
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluent-plugin-rds-genlog
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.9
5
+ platform: ruby
6
+ authors:
7
+ - lagrutta
8
+ - jen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2017-05-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: fluentd
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 10.0.4
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 10.0.4
42
+ - !ruby/object:Gem::Dependency
43
+ name: mysql2
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.3.11
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 0.3.11
56
+ - !ruby/object:Gem::Dependency
57
+ name: test-unit
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 3.1.3
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 3.1.3
70
+ - !ruby/object:Gem::Dependency
71
+ name: timecop
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: Amazon RDS gen_log input plugin for Fluent event collector
85
+ email:
86
+ - jen@tune.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".travis.yml"
92
+ - Gemfile
93
+ - LICENSE
94
+ - LICENSE.txt
95
+ - README.md
96
+ - Rakefile
97
+ - fluent-plugin-rds-genlog-0.0.8.gem
98
+ - fluent-plugin-rds-genlog.gemspec
99
+ - lib/fluent/plugin/in_rds_genlog.rb
100
+ - test/helper.rb
101
+ - test/plugin/test_in_rds_genlog.rb
102
+ homepage: https://github.com/hasjenL/fluent-plugin-rds-genlog
103
+ licenses: []
104
+ metadata: {}
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project:
121
+ rubygems_version: 2.6.6
122
+ signing_key:
123
+ specification_version: 4
124
+ summary: Amazon RDS gen_log input plugin for Fluent event collector
125
+ test_files:
126
+ - test/helper.rb
127
+ - test/plugin/test_in_rds_genlog.rb