logstash-input-rds 0.15.1 → 0.15.3

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
  SHA256:
3
- metadata.gz: fb70e7846d2d058443303145af8bb0e6583637f4096394bf38ad3e8eea4c33f9
4
- data.tar.gz: 05ea61658c93554bf2287610d61438267755746559c1abf18ea4ccd18075bdc7
3
+ metadata.gz: 21b636c4ee0b10aa4ba8604582f679bdbea13fbcdb76f2797f955a149aa8f679
4
+ data.tar.gz: 261eabddfcc67888ae3481343fb7b328f22e2ce524a1e69c2f288ca09927c2e7
5
5
  SHA512:
6
- metadata.gz: 3a9c245206d2336cdbe39c2faa564a585457b20505de24c51137bbab802255ef1f676e01cb6f1e6bcb1da47f3dfcf2fbf5b12b5e46666f2830ac3de39ef7f80b
7
- data.tar.gz: be67935675086b83fd4654bf5fec812296cb5e56d8f9eccbb3e2fef123e5995a6c61161a6e10b3f4e9f30ca537f17ef8b56d8bea81c7a7e0da8cce2d4bda57c3
6
+ metadata.gz: 97bc0193ca76a26fdecc8ba24c7f1b765cce2634907e14d473f493cfdde86ba6708054619b5a62ad217d59999a650f3b37014f08717aaff7ec195ba7ffb41a9e
7
+ data.tar.gz: c3850b786f6b44e1a3cbf797bb78983eee76c80976884d3169e9702abde6007d381e85776d1158c192e0940bc020a90aceff5467893f35a9dd12a7e241988001
@@ -24,21 +24,19 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
24
24
  require "aws-sdk"
25
25
  @logger.info "Registering RDS input", :region => @region, :instance => @instance_name, :log_file => @log_file_name
26
26
  @database = Aws::RDS::DBInstance.new @instance_name, aws_options_hash
27
- @sincedate = filename2datetime "1999-01-01-01" # FIXME sincedb
27
+ @sincedb = SinceDB::File.new File.join(ENV["HOME"], ".sincedb_" + Digest::MD5.hexdigest("#{@instance_name}+#{@log_file_name}"))
28
28
  end
29
29
 
30
30
  def run(queue)
31
31
  @thread = Thread.current
32
32
  Stud.interval(@polling_frequency) do
33
- @logger.debug "finding files starting #{@sincedate} (#{@sincedate.to_i * 1000})"
34
-
33
+ @logger.debug "finding #{@log_file_name} for #{@instance_name} starting #{@sincedb.read} (#{@sincedb.read.to_i * 1000})"
35
34
  logfiles = @database.log_files({
36
35
  filename_contains: @log_file_name,
37
- file_last_written: @sincedate.to_i * 1000,
36
+ file_last_written: @sincedb.read.to_i * 1000,
38
37
  })
39
38
  logfiles.each do |logfile|
40
- @sincedate = filename2datetime logfile.name
41
-
39
+ @logger.debug "downloading #{logfile.name} for #{@instance_name}"
42
40
  more = true
43
41
  marker = "0"
44
42
  while more do
@@ -54,6 +52,7 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
54
52
  more = response[:additional_data_pending]
55
53
  marker = response[:marker]
56
54
  end
55
+ @sincedb.write (filename2datetime logfile.name)
57
56
  end
58
57
  end
59
58
  end
@@ -63,8 +62,29 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
63
62
  end
64
63
 
65
64
  def filename2datetime(name)
66
- fragments = name.match /(\d{4})-(\d{2})-(\d{2})-(\d{2})$/
67
- Time.parse "#{fragments[1]}-#{fragments[2]}-#{fragments[3]} #{fragments[4]}"
65
+ parts = name.match /(\d{4})-(\d{2})-(\d{2})-(\d{2})$/
66
+ Time.utc parts[1], parts[2], parts[3], parts[4]
68
67
  end
69
- end
70
68
 
69
+ private
70
+ module SinceDB
71
+ class File
72
+ def initialize(file)
73
+ @db = file
74
+ end
75
+
76
+ def read
77
+ if ::File.exists?(@db)
78
+ content = ::File.read(@db).chomp.strip
79
+ return content.empty? ? Time.new : Time.parse(content)
80
+ else
81
+ return Time.new("1999-01-01")
82
+ end
83
+ end
84
+
85
+ def write(time)
86
+ ::File.open(@db, 'w') { |file| file.write time.to_s }
87
+ end
88
+ end
89
+ end
90
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-rds'
3
- s.version = '0.15.1'
3
+ s.version = '0.15.3'
4
4
  s.summary = 'Ingest RDS log files to Logstash'
5
5
 
6
6
  s.authors = ['Andrew Schleifer']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-rds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.1
4
+ version: 0.15.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Schleifer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-29 00:00:00.000000000 Z
11
+ date: 2018-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement